为数不多一遍过地代码~创建素数表可以用变长数组减少一点内存占用,不过OJ没有限制就无所谓啦~AC代码如下
#include <stdio.h>
#include <stdlib.h>
int isprime(int n){
if(n == 1){
return 0;
}else if(n == 2){
return 1;
}else{
for(int i = 2; i * i <= n; i++){
if(n % i == 0){
return 0;
}
}
return 1;
}
}
int main()
{
int M, N;
scanf("%d %d", &M, &N);
int primes[10000] = {0};
for(int i = 0; i < N; i++){
int j;
if(i == 0){
j = 2;
}else{
j = primes[i - 1] + 1;
}
while(isprime(j) == 0){
j++;
}
primes[i] = j;
}
int linect = 1;
for(int i = M - 1; i < N; i++){
if(linect == 1){
printf("%d", primes[i]);
}else if(linect == 10){
printf(" %d\n", primes[i]);
linect = 0;
}else{
printf(" %d", primes[i]);
}
linect++;
}
return 0;
}