麦克雷 Mavom.cn

标题: 新手求解答,关于素数 [打印本页]

作者: Antonypet    时间: 3 天前
标题: 新手求解答,关于素数
下面这串代码,第三行就开始看不懂了:
谁能详细分析一下
为什么4、6、8不满足呢?
为什么输出的结果3出现一次,5、7、9分别输出三次呢?
for number in range(3,9):
if number>1:
for i in range(2,number):
if (number % i) == 0:
break
else:
print(number)
作者: 艾的民    时间: 3 天前
range是不包括最后面那个数字的,比如range(3,10),输出结果是3456789。所以你的这个代码运行结果应该如下

(, 下载次数: 0)
作者: 艾的民    时间: 3 天前
不对,你这个缩进。。else和for是同一层次的
作者: 艾的民    时间: 3 天前
代码的缩进,应该长这个样子的。因为前面也都限制了数字是3到9,所以那个检测是否大于一的if省略了。这样输出的结果就是3、5和7。下次发代码的时候记得把缩进也加上

(, 下载次数: 0)
作者: 艾的民    时间: 3 天前
(以我后写的代码为例),第一行遍历3到9的数字,第二行遍历2到(num-1)的数字并记为i(range是不包括最后面那个数字的,所以是(num-1)。)
然后用第一行找出的数字,一个一个的除第二行的数字并看余数是不是等于0(%是前面的数字除以后面的数字并输出它的余数)。
剩下的就不解释了。如果有一次循环中余数等于零,就证明有其他因数,这个数字就不是素数,下面就break停止循环。如果循环到最后这个数字没有一次除完之后余数等于零的话,那它就是素数。下面的代码就是输出它




欢迎光临 麦克雷 Mavom.cn (https://www.mavom.cn/) Powered by Discuz! X3.5