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のままの場合は、判定する数は素数なので、それを出力します。