尝试在python中查看一个数是否为素数

2024-09-29 23:17:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个程序,告诉你一个数是不是质数。给你。正如您在运行chkPrime函数时看到的,所有操作都返回true。我一辈子都搞不懂。有什么想法吗?在

total=0

#Check if number is whole
def chkWhole(x):

    if(x%1 == 0):

        return True

    else:

        return False




#Check to see if the number divides evenly with all primes
def chkModtwo(n):
    a=n%2
    if chkWhole(a)==True:
        return True
    else:
        return False
def chkModthree(n):
    a=n%3
    if chkWhole(a)==True:
        return True
    else:
        return False
def chkModfive(n):
    a=n%5
    if chkWhole(a)==True:
        return True
    else:
        return False
def chkModseven(n):
    a=n%7
    if chkWhole(a)==True:
        return True
    else:
        return False


#Check if the number is a prime using other two functions

def chkPrime(n):
    if n== 1 or 2 or 3 or 5 or 7:
        return True

    if chkModtwo(n)==False and chkModthree(n)==False and chkModfive(n)==False and chkModseven(n)==False:
        return True
    else:
        return False

#while True:
#yourinput=raw_input("Enter to check if it is a prime")
#
#
#    youranswer=chkPrime(yourinput)
#
#    if youranswer==True:
#        print("Yes, it is a prime")
#    else:
#        print("No, this number is not prime")

Tags: orandtofalsetruenumberreturnif
3条回答

当你的函数试图确定143是质数还是复合数时,它是如何响应的?在

下面是我如何在my blog编写这个函数的。在

def isPrime(n):
    if n % 2 == 0:
        return n == 2
    d = 3
    while d * d <= n:
        if n % d == 0:
            return False
        d += 2
    return True

这将是快速和简洁的数字高达10^14假设你不去追求最高效率。迭代10**7范围内的每个数字大约需要15秒。所以你可以在大约10-15秒的时间内完成这个任务。当然,您可以将print语句更改为所需的任何内容

尝试:

import math
def isPrime(x):
     prime = True
     if x%2 == 0:
          Prime =False
     else:
          for i in range(2,math.sqrt(x)):
               if a == i:
                    pass
               else:
                    a%i == 0:
                    Prime = False
                    break
     return Prime

if isPrime(x):
    print('prime')
else:
    print('Not prime') 
if n== 1 or 2 or 3 or 5 or 7:

应该是

^{pr2}$

或者

if n in (1, 2, 3, 5, 7):

相关问题 更多 >

    热门问题