【问题标题】:Prime or composite calculator errors when I enter a composite number输入合数时出现素数或复合计算器错误
【发布时间】:2021-08-22 06:09:41
【问题描述】:
num = int(input("Enter A NUMBER: "))

def primeornot():
  for i in range(2, num//2):
    if (num % i) == 0:
      print(num, "is not a prime number")
    elif (num % i) != 0:
      print("Its prime!")
    
primeornot()

尝试输入一个合数,例如 55,它会打印很多结果。它会说它不是素数,然后说它是素数。

【问题讨论】:

  • 您正在循环打印输出。您是否期望一个结果,因为这不是您编码的方式
  • 在没有找到因数的情况下,直到循环结束,你才能知道这个数是素数。

标签: python primes


【解决方案1】:

如果满足if条件则使用break,如果是素数则阻塞

num = int(input("Enter A NUMBER: "))

def primeornot():
  for i in range(2, num//2):
    if (num % i) == 0:
      print(num, "is not a prime number")
      break
  else:
      print("Its prime!")
    
primeornot()

【讨论】:

    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2014-12-12
    相关资源
    最近更新 更多