再睡一觉 发表于 2020-12-2 16:56:11

关于求是否为质数问题

想求一个数是否为质数,程序如下:

def prime(n):
    if n <= 1:
      print( '%d 是质数' %n)
    else:
      for i in range(2,n):
            if n % i == 0:
                print('%d 不是质数' %n)
                break
            else:
                print('%d 是质数' %n)
                break
               
prime(2)
prime(75)
prime(25)
prime(7)


但是输出为:

75 是质数
25 是质数
7 是质数

prime(2)未显示
prime(75)
prime(25)显示错误

发现只要是5的倍数就判断错误,请问各位大佬这是什么原因啊?

昨非 发表于 2020-12-2 17:05:35

def prime(n):
    if n <= 1:
      print( '%d 是质数' %n)
    else:
      for i in range(2,n):
            if n % i == 0:
                print('%d 不是质数' %n)
                break
      else:                         #这两行缩进改一下
            print('%d 是质数' %n)

               
prime(2)
prime(75)
prime(25)
prime(7)

需要等到i遍历完2到n后      如果取余都不成立
再打印是素数

suchocolate 发表于 2020-12-2 17:07:43

range(2,2)啥也没有

再睡一觉 发表于 2020-12-3 08:10:23

昨非 发表于 2020-12-2 17:05
需要等到i遍历完2到n后      如果取余都不成立
再打印是素数

好的 谢谢大佬

再睡一觉 发表于 2020-12-3 08:11:04

suchocolate 发表于 2020-12-2 17:07
range(2,2)啥也没有

谢谢 ,忘记这个了
页: [1]
查看完整版本: 关于求是否为质数问题