100未満の素数を見つけるc言語のコードは?

素数は、1とその数自身以外に約数をもたない数で、これを判別する方法は、1とその数で割り切れるかどうかを調べればよい。以下に100以内の素数の求め方を示す。

#include <stdio.h>

int main() {
    int i, j, isPrime;
    
    printf("2 ");  // 2是素数
    for (i = 3; i <= 100; i += 2) {  // 只判断奇数
        isPrime = 1;  // 假设i是素数
        for (j = 3; j * j <= i; j += 2) {  // 只判断小于等于i的奇数
            if (i % j == 0) {
                isPrime = 0;  // i能被j整除,说明i不是素数
                break;
            }
        }
        if (isPrime) {
            printf("%d ", i);
        }
    }
    
    return 0;
}

このコードは2重のループを使用しています。外側のループは、判定する数の範囲を制御し、内側のループは、各数が素数かどうかを判定します。最初に、2を出力します。次に、外側のループは3から2ずつ増分し、奇数のみを判定します。内側のループは3から2ずつ増分し、判定する数以下の奇数のみを判定します。判定する数が内側のループの奇数で割り切れる場合、それは素数ではないので、isPrimeを0にして、内側のループを終了します。内側のループ終了時、isPrimeが1のままの場合は、判定する数は素数なので、それを出力します。

bannerAds