[英]how to make my for loop print only once instead of for each value of i
我正在尝试创建一个函数,用于检查给定数字作为参数是否为素数。 我决定使用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
通过return
,函数将在识别出数字不是质数时停止。
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
计算结果为true,它将打印并返回,从而停止进一步的不必要的计算。
尝试这个
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)
我会尝试类似的东西:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.