题目描述
令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
#include<iostream>
using namespace std;
#define maxsize 200005
#include<math.h>
int main()
{int m,n,data[maxsize];
int i,j,flag=0,v=0;
cin>>m>>n;
if(m<=n&&n<=maxsize)
{for(i=2;i<=maxsize;i++)
{for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)//非素数
{flag=1;
break;
}
else flag=0;
}
if(flag==0)
data[v++]=i;
}
if(m!=n)
{for(i=m-1;i<n-1;i++)
{if((i-m+1)%10==9)
cout<<data[i]<<endl;
else cout<<data[i]<<" ";
}
cout<<data[i];
}
else
cout<<data[m-1];
}
return 0;
}