python打印质数(素数)
python打印质数(素数)
·
前言:今天有一个python作业,输入100以内的质数(素数),本来题目挺简单,但是我想着有人不会,于是有了这篇文章。
何为质数?
答:一个整数,如果它大于1,且只能被1和它本整除,则该数就是质数
第一种方法代码如下(小白应该能看懂):
for i in range(2, 101):
flag = True # 假设该数是 素数
# 用大于1且小于i的数来和j取模,如果模为0则表示能被整除,能被整除则说明它不是质数
for j in range(2, i):
if 0 == i % j:
flag = False
if flag: # 如果是素数,则打印
print(i)
第二种方法如下(小白可能看得懂):
for i in range(2, 101):
flag = True # 假设该数是 素数
```
j的取值范围[2, i/2]来和i进行取模操作,以此来减少循环次数
因为我们能轻而易举的想到一个数n如果能被一个数m整数,
则m最大只能是⌊n/2⌋(⌊N⌋表示将N向下取整)
```
for j in range(2, i/2):
if 0 == i % j:
flag = False
if flag: # 如果是素数,则打印
print(i)
第三种方法如下(小白可能看不懂):
import math
for i in range(2, 101):
# sqrt()求平方根
# floor()向下取整
temp = math.floor(math.sqrt(i))
flag = True # 假设当前 i 是素数
for j in range(2, temp + 1):
if 0 == i % j: # 如果被一个数整除,则说明该数不是素数
flag = False #
if flag: # 如果是素数,则打印
print(i)
其他题目:
1.【python打印五子棋棋盘】
更多推荐
已为社区贡献2条内容
所有评论(0)