【问题标题】:Checking if a number is prime: if yes print, if no print (python) [duplicate]检查数字是否为质数:如果是则打印,如果不是则打印(python)[重复]
【发布时间】:2022-11-18 06:39:16
【问题描述】:

第一次来这里!尝试学习编码 :-)!

我正在尝试测试一个数字是否为质数。如果是,则打印('它是质数'),如果不是,则打印('它不是质数')。

我希望所有解决方案都包含在一个外循环中。

我已经成功地做到了这一点,但它有两个外部循环。理想情况下,我想使用一个。

如果有人有解决方案,我很乐意看到它:-)!

如果我使用了错误的代码术语(即外循环),请原谅。希望我的实际代码能更好地解释我的意思。

x=10
a=[]

for i in range(2,x):
    if x % i == 0:
        a.append(i)
if (len(a) == 0) and (x != 1):
    print(x,'is a prime number')
else: 
    print(x,'is not a prime number')

正如您在上面看到的,我不得不使用第二个 if 语句作为另一个外部循环。我只是觉得这不是最好的解决方案。

【问题讨论】:

  • if 语句不是循环语句。您的代码只有一个循环,但缩进不正确,因此无法运行。
  • 好的,这是有道理的!是的,我不是指额外的缩进。

标签: python primes


【解决方案1】:

所以这可能应该是一个函数,因此,如果你找到一个因子,你就可以返回——你不需要找到所有的因子或知道有多少,它只在有 0 或 1 时才重要。

所以像:

boolean isPrime(int x):
   for i in range 2 .. sqrt(x):
       if x%i==0 then return false
   return true

那是伪代码,不是 python,但它应该足以让您了解它的要点。

编辑:您也可以使用 break 语句和一个变量来存储质数,但我认为这更好,而且通常不喜欢中断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多