簡體   English   中英

檢查一個范圍內的數字是否為質數,如果不是,返回所有因數

[英]Check whether the number in a range is a prime number, if not, return all factors

假設我們要查看范圍(2,10)。

我寫了以下代碼:

for n in range(2,10):
    for x in range(2,n):
        if n%x == 0:
            print(n,'equals',x,'*',n//x)  
            break
    else:
        print(n, "is a prime number") 

上述方法可以正確地進行檢查,但它也返回一個因素。

但是如果我替換 break 繼續:

for n in range(2,10):
    for x in range(2,n):
        if n%x == 0:
            print(n,'equals',x,'*',n//x)  
            continue
    else:
        print(n, "is a prime number") 

它不能再正確地進行檢查了。 那么有沒有更好的方法來正確地檢查和所有因素? 你的回答對我有很大的幫助!!

不要使用 break 或 continue,而是按如下方式制作和使用 bool 變量prime

for n in range(2,10):
    prime = True
    for x in range(2, n):
        if n%x == 0:
            print(n,'equals',x,'*',n//x)  
            prime = False
    if prime:
        print(n, "is a prime number")

暫無
暫無

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

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