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打印五子棋棋盘

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值