wangpeiyuan 发表于 2021-7-17 18:22:32

代码有错误嘤嘤嘤

for n in range(2,10):
        for x in range(2,n):
                if n % x == 0:
                        print(n,"=",x,"*",n // x)
                        break
                else:
                        print(n,"是一个素数")



为什么打印出来了这个:                              为啥2 没了,有三个5, 5个7,两个9??
3 是一个素数                                                我想要3456789都只出现一次(╥╯^╰╥)
4 = 2 * 2
5 是一个素数
5 是一个素数
5 是一个素数
6 = 2 * 3
7 是一个素数
7 是一个素数
7 是一个素数
7 是一个素数
7 是一个素数
8 = 2 * 4
9 是一个素数
9 = 3 * 3

wp231957 发表于 2021-7-17 19:37:37

逻辑错误
不是n%x不等于0就是素数,而是n%(2---n-1)都不等于0才是素数

qq1151985918 发表于 2021-7-17 20:27:50

把 else 往前一个缩进单位,跟 for 同级for n in range(2,10):
      for x in range(2,n):
                if n % x == 0:
                        print(n,"=",x,"*",n // x)
                        break
      else:
                print(n,"是一个素数")
页: [1]
查看完整版本: 代码有错误嘤嘤嘤