美文网首页PAT
1003 数素数 (20)——python

1003 数素数 (20)——python

作者: 憨憨你好_我是敢敢 | 来源:发表于2020-03-09 19:04 被阅读0次

    题目描述

    令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。

    输入描述:

    输入在一行中给出M和N,其间以空格分隔。

    输出描述:

    输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

    输入例子:

    5 27
    

    输出例子:

    11 13 17 19 23 29 31 37 41 43
    47 53 59 61 67 71 73 79 83 89
    97 101 103
    

    ******************************手动分割*******************************

    解题思路:

    1.注意是求第m个素数至第n个素数
    2.进行素数条件判断
    3.每输出十个素数进行换行

    代码:

    p = input().split(' ')#输入正整数m,n
    m = int(p[0])#读取m
    n = int(p[1])#读取n
    num = 0#计数器
    now = 2#第一个素数,now一直为PM与PN之间的素数
    while num<n:
        count = 1#判断是否为素数
        # 第一个for循环是筛取素数
        for i in range(int(now**0.5)+1):
            if i>1 and i<now:#数的范围
                if now%i == 0:#不是素数
                    count = 0#计数为零
                    break#结束,直接跳出循环,进行now++
        #如果是素数且num为m,n之间值
        if count == 1 and num+1 >= m:
            #(num+2-m)
            if (num+2-m)%10 != 0:
                #如果num+1为最后一个素数
                if num+1 == n:
                    print(now)
                #如果不是最后一个素数,老老实实空格输出
                else:
                    print(now,end=' ')
            #如果num+2是第十个(或倍数)直接输出带换行
            else:
                print(now)
        #如果是素数,num计数器加一进行循环
        if count == 1:
            num = num+1
        #now持续加一直至循环结束
        now = now+1
    

    相关文章

      网友评论

        本文标题:1003 数素数 (20)——python

        本文链接:https://www.haomeiwen.com/subject/vxcmdhtx.html