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; }