簡體   English   中英

為什么我的質數代碼在 CodeWars 上超時?

[英]Why does my prime number code time out on CodeWars?

非常直接,我不得不編寫一個代碼來檢查一個數字是否為素數。 代碼在 Jupyter Notebook 上測試過並且運行良好。 但是每當我將它放入 CodeWars 時,它都會通過初始測試,但稍后當我提交嘗試時,它會超時,說代碼可能“效率低下”。 有沒有人知道為什么會發生這種情況? 這是代碼:

def is_prime(num):
    mylist = []
    if num != 1 and num > 0:
        for number in range(1,num+1):
            if num % number == 0:
                mylist.append(number)
            else:
                pass
        
        if len(mylist)>2:
            return False
        else:
            return True
    else:
        return False

對於大數,您的計算時間將花費太長時間。

我建議更多地研究素數的屬性並重新評估您的代碼。

例如:質數的性質

你能試試這個,看看它在 CodeWars 中是如何工作的。

對於范圍內的數量(1,7):
if all(num%i!=0 for i in range(2,num)):

    print('Prime' , num)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM