如果没有可分,如何检查数字是否为素数

时间:2016-10-09 00:09:31

标签: python python-3.x

我是编程的新手,我需要知道如果没有结果我是否可以打印像“这是一个素数”这样的字符串

n = int(input("Digite um número inteiro positivo: "))
for i in range(2,n):
    if n % i == 0:
         print(i)

例如,如果我输入5 Nothing show up

如果我键入8,则会显示2和4

如果程序中出现NOTHING,如何添加打印件(n,“是素数”)? 我找不到任何命令

4 个答案:

答案 0 :(得分:2)

n = int(input("Digite um número inteiro positivo: "))
printed = False
for i in range(2,n):
    if n % i == 0:
         print(i)
         printed = True
if not printed:
      print(n,"is a prime number") 

这使用"标志"变量以显示是否打印了值。

答案 1 :(得分:0)

def isPrime(num):
    for i in range(2, num):
        if num % i == 0:
            return False
    return True

def getFactors(n):
    myList = []
    for i in range(2, n):
        if n % i == 0:
            myList.append(i)
    return myList

num = 17
num2 = 20
if isPrime(num):
    print("prime")
else:
    print(getFactors(17))
if isPrime(num2):
    print("prime")
else:
    print(getFactors(num2))

答案 2 :(得分:0)

粗略的做法是添加类似计数器的东西来检查因子的数量。

n=int(input("Digite um número inteiro positivo:"))
counter=0
for i in range(2,n):
    if(n%i==0):
        print(i)
        counter+=1
if(counter==0):
    print "n is prime"

答案 3 :(得分:0)

您还可以将循环的范围设置为仅检查从2到n // 2的值,因为过去的任何内容对于检查是否为素数都是不必要的。

def isPrime(n):
    for i in range(2,**n//2**):
        if n % i == 0:
            return 'This number is not Prime.'
    else:
        return 'This number is Prime.'


def main():
    user = int(input('Enter a number to check primeness: '))
    print(isPrime(user))

main()