题目描述
令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
