题目描述:
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。
输入描述:
输入在一行中给出M和N,其间以空格分隔。
输出描述:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
#include<iostream>
#include<math.h>
#define max 110001
using namespace std;
bool isPrime(int num){
int flag=0;
for(int i=2;i<=sqrt(num);i++){ //此处要用开根,不然容易运行超时。
if(num%i==0) flag=1;
}
if(flag==1) return false;
else return true;
}
int main()
{
int m,n,key=0;
scanf("%d%d",&m,&n);
int num=0,flag=0;
for(int i=2;i<=max;i++){
if(isPrime(i)){
flag=1;
num++;
}
if(num>n) break;
if(num>=m&&num<=n&&flag){
key++;
if(key%10==0) printf("%d\n",i);
else if(num!=n)printf("%d ",i);
else printf("%d",i);
flag=0;
}
}
return 0;
}