令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;
int isPrime(int temp)
{
int flag = 1;
for(int i =3;i<sqrt(temp)+1;i+=2)//注意+2.因为数组就是+2,所以不用判断偶数
{
if (0 == temp % i)
{
flag = 0;
break;
}
}
return flag;
}
int main()
{
int min,max,i,j=1,k=1;
cin>>min>>max;
int primeArr[10000]={0};
primeArr[1] = 2;
primeArr[2] = 3;
for (i = 3;i <= 1000000;i+=2)
{
if (isPrime(i))
{
j++;
if(j>max)
break;
primeArr[j] = i;//先找出J个素数放入数组
}
}
for(j = min;j <= max;j++,k++)
{
cout << primeArr[j];
if (0 == k % 10 )
cout << endl;
else if (k <= max - min)
cout << " ";
}
return 0;
// cout << min<<max << endl;
return 0;
}