7-7 筛选法求素数

输入一个整数n,求n以内的素数。素数指的是除了1和它本身没有其他因子的整数;最小的素数是2,其余的素数都是奇数;素数序列为:2 3 5 7 11 13 17 19……

输入格式:

测试数据有多组,处理到文件尾。对于每组测试,输入一个整数n(1<n<2000)。

输出格式:

对于每组测试,输出n以内的素数。每两个素数之间留一个空格。

输入样例:

19

输出样例:

2 3 5 7 11 13 17 19

注意:结尾无空格或空行

 答案示例:

import math 
def is_prime(x):#定义函数判断素数
    if x<2:
        return False
    elif x==2:
        return True
    else :
        for i in range(2,int(math.sqrt(x))+1):
            if x%i==0:
                return False
    return True
while True:
    try:
        m=[]
        n=int(input())
        for i in range(2,n+1):
            if is_prime(i):
                m.append(i)
        s=0#注意不能简单地用end='',因为结尾无空,故采用下列算法
        for k in m:
            if s==0:
                print(f'{k}',end='')
                s+=1
            elif s==1:
                print(' ',k,sep='',end='')
        print()
    except:
        break
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值