PAT乙級1013.素数を数える(C言語)
2660 ワード
PAT乙級真題問題解決目録
/*
* :
* 1. i : ,
* 2. ,10 1 , :
*/
#include
int isPrime(int num) {// 5
for (int i = 3; i * i <= num; i += 2) {// <= sqrt(i) ,
if (num % i == 0) {// ,
return 0;
}
}
return 1;
}
int main() {
int M, N; // M N
scanf("%d %d", &M, &N);
int cnt = 1, prime1 = 2, prime2 = 3; // ; 2, 3
while (cnt <= N) {
if (cnt >= M) {// P_M P_N
printf("%d", prime1);
if (cnt != N && (cnt - M + 1) % 10 != 0) {// ,
printf(" ");
} else {
printf("
");
}
}
prime1 = prime2; //
cnt++; //
do {
prime2 += 2;
} while (!isPrime(prime2));
}
return 0;
}