令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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
#include<iostream> #include <math.h> using namespace std; bool fun(int); int main() { int a,b,t=2,m=0; cin>>a>>b; while(1) { if(fun(t)) { m++; if(m==a) { break; } } t++; } int flag=0; while(1) { if(fun(t)) { if(flag==0) { cout<<t; } else { cout<<" "<<t; } flag++; if(flag==10) { cout<<endl; flag=0; } m++; if(m==b+1) { break; } } t++; } return 0; } bool fun(int t) { int temp = sqrt(t); //开平方 if(t<=3) { return true; } for(int p=2;p<=temp;p++) //采用开平方的数作为最后一个,可以节约时间 { if(t%p==0) { return false; } } return true; }