我正在尝试创建一个函数来检查作为参数的给定数字是否为质数。我决定用一个for循环来做这件事,但它一直打印出这个数对于某些除数来说不是质数,而对于其他数来说它是质数。下面是我的代码:
def prime(n):
for i in range(2, n):
if n%i == 0:
print (n," is not prime because it is divisible by ", i)
else:
print (n, " is a prime number")
prime (15)这是输出:
15 is a prime number
15 is not prime because it is divisible by 3
15 is a prime number
15 is not prime because it is divisible by 5
15 is a prime number
15 is a prime number
15 is a prime number
15 is a prime number
15 is a prime number
15 is a prime number
15 is a prime number
15 is a prime number
15 is a prime number因此,我不想把这个作为输出,而是立即认识到,如果这个数有除数1和它本身以外的除数,它就不是质数。如果数字不是这样的话。就像这样:
#if number if prime
15 is a prime number
#if number is not prime
15 is not a prime number because it is divisible by 3发布于 2018-01-04 00:57:26
通过returning,一旦识别出一个数字不是质数,该函数就会停止。
def prime(n):
for i in range(2, n):
if n%i == 0:
print (n," is not prime because it is divisible by ", i)
return
print (n, " is a prime number")
return这样做的好处是,一旦表达式n%i == 0的计算结果为真,它就会打印并返回,从而停止进一步的不必要的计算。
发布于 2018-01-04 00:12:18
尝尝这个
def prime(n):
for i in range(2, n):
if n%i == 0:
print (n," is not prime because it is divisible by ", i)
prime (15)发布于 2018-01-04 01:07:12
我会尝试这样的方法:
def prime(n):
isprime = True
for i in range(2, n):
if n%i == 0:
print (n," is not prime because it is divisible by ", i)
isprime = False
break
if isprime:
print (n, " is a prime number")
prime (15)https://stackoverflow.com/questions/48081033
复制相似问题