繁体   English   中英

如何使我的for循环仅打印一次,而不是为每个i值打印一次

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM