首页 > 解决方案 > 检查素数的python代码考虑(55,25)是素数

问题描述

代码快照 python程序检查数字列表中的素数将55和25视为素数,这实际上不是素数,因为55/5 = 11并且提醒为零,所以代码中有什么问题

def check_prime(n):
    for i in range(2,n,1):
        if(n%i)==0:
            return  1
        else :
            return 0

numbers=[51,52,53,54,55,13,407,508,11,17,60,12,19,25,30,]
for j in numbers:
    if check_prime(j)==1:
        print("the {} is not prime".format(j))
    else:
        print("th {} is prime".format(j))

标签: pythonnumbersprimes

解决方案


您的函数在单次迭代后返回,取消 for 循环的效果。当发现它不是质数时,您想返回,但您需要继续循环遍历所有数字,然后才能说质数是质数。此外,翻转返回值以更直观地理解。

def check_prime(n):
    for i in range(2,n,1):
        if(n%i)==0:
            return  0
    return 1

推荐阅读