#17203: 請問TLE的原因


linightz@gmail.com (Linightz)


import sys

for usr_input in sys.stdin:
a = list(map(int, usr_input.split()))
res = 1
for i in range(2, a[0]+1):
if a[0] % i == 0 and a[1] % i == 0:
res = i
print(res)

請問以上code跑這題會TLE的原因?
請別只是貼AC的版本,我比較想知道為什麼這樣寫效率不好
感恩
#17205: Re:請問TLE的原因


rollfc (點石學園 StoneCampus)


import sys

for usr_input in sys.stdin:
a = list(map(int, usr_input.split()))
res = 1
for i in range(2, a[0]+1):
if a[0] % i == 0 and a[1] % i == 0:
res = i
print(res)

請問以上code跑這題會TLE的原因?
請別只是貼AC的版本,我比較想知道為什麼這樣寫效率不好
感恩



萬一題目給兩個數字都是 231-1, 231-1

你看你的迴圈會怎麼跑? 請利用輾轉相除法的概念來做

通常吃TLE時,餵極端一點的測資就會知道原因。

#17209: Re:請問TLE的原因


linightz@gmail.com (Linightz)


import sys

for usr_input in sys.stdin:
a = list(map(int, usr_input.split()))
res = 1
for i in range(2, a[0]+1):
if a[0] % i == 0 and a[1] % i == 0:
res = i
print(res)

請問以上code跑這題會TLE的原因?
請別只是貼AC的版本,我比較想知道為什麼這樣寫效率不好
感恩



萬一題目給兩個數字都是 231-1, 231-1

你看你的迴圈會怎麼跑? 請利用輾轉相除法的概念來做

通常吃TLE時,餵極端一點的測資就會知道原因。



感謝解答