首页 新闻 会员 周边 捐助

Python题目

0
悬赏园豆:50 [已解决问题] 解决于 2020-09-26 16:02

编程输出3到100 内的所有素数。输出时每行输出5个数,每个数占据5列宽。

梦境贩卖师的主页 梦境贩卖师 | 初学一级 | 园豆:126
提问于:2020-09-26 14:14
< >
分享
最佳答案
1
 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)    # 计数器归零

收获园豆:50
Conan-jine | 小虾三级 |园豆:1272 | 2020-09-26 15:30

可以加一下注释吗,有点看不懂

梦境贩卖师 | 园豆:126 (初学一级) | 2020-09-26 15:34

@梦境贩卖师: 你看这样可以不,还是有疑问的话,是否可以QQ详聊

Conan-jine | 园豆:1272 (小虾三级) | 2020-09-26 15:51

@Conan-jine: 懂了懂了,谢谢

梦境贩卖师 | 园豆:126 (初学一级) | 2020-09-26 15:55

@梦境贩卖师: 给个最佳答案吧~

Conan-jine | 园豆:1272 (小虾三级) | 2020-09-26 15:57

@Conan-jine: 怎么给啊

梦境贩卖师 | 园豆:126 (初学一级) | 2020-09-26 15:59

@梦境贩卖师: 结贴,选为最佳答案

Conan-jine | 园豆:1272 (小虾三级) | 2020-09-26 16:00

@Conan-jine: 为什么在pycharm上运行不出来

梦境贩卖师 | 园豆:126 (初学一级) | 2020-09-26 16:13

@梦境贩卖师: 我就是在pycharm上编译运行的啊,你的编译器报什么错?

Conan-jine | 园豆:1272 (小虾三级) | 2020-09-26 16:20

@Conan-jine: 好了好了,刚才缩进搞错了,谢谢谢谢

梦境贩卖师 | 园豆:126 (初学一级) | 2020-09-26 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册