1. 自己写的c++,在dev中运行ok,但提交错误
#include <iostream>
#include <cmath>
using namespace std;
int isPrime(int n);
int main(){
int m, n, cnt, i = 2;
cin >> m >> n;
do{
if(isPrime(i)){
cnt++;
if(cnt >= m){
printf("%d%s",i,(((cnt-m+1) % 10) == 0)?"\n":" ");
}
}
i++;
}while(cnt < n);
return 0;
}
int isPrime(int n){
int flag = 0;
int i;
for(i = 2; i <= sqrt(n); i++){
if( n % i == 0){
break;
}
}
if(n > 1 && i > sqrt(n)){
flag = 1;
}
}
2. 参考
https://www.jianshu.com/p/ad431345b3f4
#include<stdio.h>
#include<math.h>
int isPrime(int n);
int main(){
int m, n;
scanf("%d %d", &m, &n);
int cnt1 = 0, cnt2 = 0; //cnt1用来记录遍历得到的总素数,cnt2用来记录10个换行
int i = 2;
while(cnt1 < n){
if(isPrime(i)){
cnt1++;
if(cnt1 >= m){
cnt2++;
printf("%d", i);
if(cnt2 % 10 == 0){
printf("\n");
}
else if(cnt1 != n){
printf(" ");
}
}
}
i++;
}
return 0;
}
int isPrime(int n){
int flag = 1;
if(n <= 1) flag = 0;
for(int i = 2; i <= sqrt(n); i++){
if(n % i == 0){
flag = 0;
break;
}
}
return flag;
}