题目描述

令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


import math
M,N = input("").split()
list1=[2]


def is_prime(number):
    if number > 1:
        if number == 2:
            return True
        if number % 2 == 0:
            return False
        for current in range(3, int(math.sqrt(number) + 1), 2):
            if number % current == 0:
                return False
        return True
    return False

if int(M)<int(N)<2:
    print("2")
else:
    for i in range(3,150000):
        if is_prime(i):
            list1.append(i)
    list2=list1[int(M)-1:int(N)]
    count=0
    for i in range(len(list2)):
        if list2[i]==list2[-1]:
            print(list2[i],end="")
        elif count==9:
            print(list2[i])
            count=0
        elif count<9:
            print(list2[i],end=" ")
            count+=1

 

 

 

 

update:2018.6.29.11:23

 

import math
M,N = input("").split()
list1=[2]


def is_prime(number):
    if number > 1:
        if number == 2:
            return True
        if number % 2 == 0:
            return False
        for current in range(3, int(math.sqrt(number) + 1), 2):
            if number % current == 0:
                return False
        return True
    return False


if int(M)<int(N)<2:
    print("2")
else:
    for i in range(3,150000,2):
        if len(list1) < int(N):
            if is_prime(i):
                list1.append(i)
    list2=list1[int(M)-1:int(N)]
    count=0
    for i in range(len(list2)):
        if list2[i]==list2[-1]:
            print(list2[i],end="")
        elif count==9:
            print(list2[i])
            count=0
        elif count<9:
            print(list2[i],end=" ")
            count+=1