题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。
输入描述:
输入在一行中给出M和N,其间以空格分隔。
输出描述:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int M;
int N;
cin >> M >> N;
int count=0;
int a[10000] = { 2,3 };
for (int i = 2; count <= N; i++)
{
int flag = 0;
for (int j = 0; a[j] <= sqrt(i); j++)//第一次循环需要用到a[1]的值
{
if (i % a[j] == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
a[count] = i;
++count;
}
if (count >= M && count <= N && flag == 0)
{
cout << i;
if ((count - M) % 10 == 9)
cout << endl;
else if (count != N)
cout << " ";
}
}
cout << endl;
return 0;
}
//查找素数:找到不能被小于等于自身平方根的所有素数整除的数