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的版本,我比較想知道為什麼這樣寫效率不好
感恩
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時,餵極端一點的測資就會知道原因。
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時,餵極端一點的測資就會知道原因。
感謝解答