前言:今天有一个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打印五子棋棋盘

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐