编程输出3到100 内的所有素数。输出时每行输出5个数,每个数占据5列宽。
1 def fun(num): # 这是一个判断素数的函数,放入参数 num (即我们需要判断的数字),不是素数返回 0,否则返回 1 2 # 我使用的是一种耗时较短的判断素数的方法, 3 # 如:24=2*12=3*8=4*6 因数有:2 3 4 6 8 12,且因数是一一配对的,找出小的就找出大的了, 4 # 且小的和大的因数的区别是 24开根号(对于任何正整数都是这样的),只要找出小的就必定能找出大的(24/2=12) 5 # 只要一个数不能被 小于等于 它的开根号的数 整除 就意味着它是素数 6 i = int(2) 7 while i * i <= num: # 判断条件还可以写成 i <= sqrt(num) 8 if num % i == 0: 9 return 0 # 一旦被整除就不是素数,返回数字0 10 i += 1 11 12 return 1 13 14 15 if __name__ == "__main__": # 这是主函数 16 cnt = int(0) # 定义一个(整型)计数器,用于满五个数字换行 17 for i in range(3, 101): # for循环遍历数字 3到 100 18 if fun(i) == 1: 19 cnt += 1 # 如果判断的数字是素数,计数器进行累加 20 # 并且使用 print 函数(方法)进行格式控制输出 21 print("%5d" % i, end='') # 把 5 改成 -5 即可变成靠左输出 22 if cnt % 5 == 0: # 如果计数器达到 5,表示可以换行,使用 print() 进行换行 23 print() 24 cnt = int(0) # 计数器归零
可以加一下注释吗,有点看不懂
@梦境贩卖师: 你看这样可以不,还是有疑问的话,是否可以QQ详聊
@Conan-jine: 懂了懂了,谢谢
@梦境贩卖师: 给个最佳答案吧~
@Conan-jine: 怎么给啊
@梦境贩卖师: 结贴,选为最佳答案
@Conan-jine: 为什么在pycharm上运行不出来
@梦境贩卖师: 我就是在pycharm上编译运行的啊,你的编译器报什么错?
@Conan-jine: 好了好了,刚才缩进搞错了,谢谢谢谢