1013 数素数 (20 分)
令 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
判断结果的时候出现了一点小问题...我让 i 和 j 都是从1开始的,这样就是%10即可,我刚开始其实不想改,刚开始写的是i=0 j=0然后%9==0的时候换行,但是当循环到第18个的时候就失败...还是老老实实从1开始吧,代码如下:
#include<iostream>
#include <math.h>
using namespace std;
int judge(int n){
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return n;
}
int main(){
int m,n;
int ans[10000];
int num=0;
int r=0;
int j=1;
cin >> m >> n;
for(int i=2;;i++){
if(judge(i)){
num++;
if(num>=m && num <=n){
ans[j++]=i;
}
if(num>n) break;
}
}
for(int i=1;i<j;i++){
if(i==j-1){
printf("%d",ans[i]);
}else if(i%10==0 ){
printf("%d\n",ans[i]);
}else{
printf("%d ",ans[i]);
}
}
return 0;
}