#30915: 求助 python 遇到TLE 不知道還能簡化甚麼??


Akira_chi (unknown)

學校 : 不指定學校
編號 : 194818
來源 : [59.120.185.108]
最後登入時間 :
2022-06-24 14:55:58
a121. 質數又來囉 | From: [59.120.185.108] | 發表日期 : 2022-06-21 17:06

import math
while True:
    try:
        num = list(map(int,input().split()))
        cnt = 0
        for x in range(num[0],num[1]+1):
            Mark = 1
            for i in range(2, int(math.sqrt(x))+1):
                if (x%i)==0:
                    Mark = 0
                    break
            cnt += Mark
        print(cnt)
    except:
        break
 
#30920: Re: 求助 python 遇到TLE 不知道還能簡化甚麼??


Akira_chi (unknown)

學校 : 不指定學校
編號 : 194818
來源 : [59.120.185.108]
最後登入時間 :
2022-06-24 14:55:58
a121. 質數又來囉 | From: [59.120.185.108] | 發表日期 : 2022-06-22 09:42

import math
while True:
    try:
        num = list(map(int,input().split()))
        cnt = 0
        for x in range(num[0],num[1]+1):
            Mark = 1
            for i in range(2, int(math.sqrt(x))+1):
                if (x%i)==0:
                    Mark = 0
                    break
            cnt += Mark
        print(cnt)
    except:
        break


自己回應一下

遇到土炮硬解卻出現TLE的時候表示可能有一套演算法的理論可以使用,可以搜尋看看

例如這題是要找質數

Google一下 "製作質數" "找出質數" 就會發現有不同的演算法新知可以學習

先學一下演算法理論,再練習寫成目標程式語言,蠻好的

勉勵一下演算法匱乏的自己跟不小心遇到TLE的其他人

 
ZeroJudge Forum