#17203: 請問TLE的原因


linightz@gmail.com (Linightz)

學校 : 不指定學校
編號 : 93742
來源 : [36.225.11.163]
最後登入時間 :
2019-03-31 20:30:30
a024. 最大公因數(GCD) | From: [125.227.140.245] | 發表日期 : 2019-03-27 16:47

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 (胖胖貓)

學校 : 國立清華大學
編號 : 81012
來源 : [49.216.18.187]
最後登入時間 :
2024-11-10 10:25:04
a024. 最大公因數(GCD) | From: [140.113.208.164] | 發表日期 : 2019-03-27 17:10

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)

學校 : 不指定學校
編號 : 93742
來源 : [36.225.11.163]
最後登入時間 :
2019-03-31 20:30:30
a024. 最大公因數(GCD) | From: [125.227.140.245] | 發表日期 : 2019-03-28 11:24

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時,餵極端一點的測資就會知道原因。



感謝解答

 
ZeroJudge Forum