簡體   English   中英

這段代碼中用於查找數字是否為素數的問題是什么?

[英]What's the problem in this code for finding whether a number is prime?

每當我執行代碼時,我只會得到錯誤的答案。 我嘗試了 2 個數字 55 和 89,無論我如何更改代碼,我都會得到相同的答案。
我知道這是一個愚蠢的問題,但我嘗試了很多方法,但它不起作用。 我想這是某種縮進問題。 對我來說,進入 python 有點困難,因為沒有使用括號,所以請幫助這個菜鳥。 謝謝

a=int(input("Enter the number you want to check for prime: \n"))
b = False
for i in (2,a):
    if(a%i)==0:
        b = True
        break
    i=i+1
if b:
    print("The number is not a prime number")
else:
    print("The number is a prime number")

好的,所以您的錯誤不是代碼錯誤。 你的算法不正確。 對於任何給定的數字,您需要進行 2 次檢查:

  • 檢查它是否是偶數(mod 2)
  • 檢查它是否可以自行整除

這並沒有說明它是質數。 這可能是一個家庭作業,所以我不會在這里給你一個可行的解決方案,但我認為這應該對你有所幫助。

好吧,也許我看到了其他東西:您for i in (2,a)循環以及稍后的i=i+1並沒有按照您的想法執行。

您可以通過在代碼中添加語句print(i)來驗證這一點。 並查看 function范圍,這可能會對您有所幫助。

暫無
暫無

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

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