2 つの数の間の素数を C 言語で求める方法は?
素数を判定する関数を用意し、そのあとある2つの数の間にある整数全てをループして素数判定関数で素数かどうかを判定します。
ネイティブに日本語で言い換えると、次のようになります:
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0; // 小于等于1的数都不是素数
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0; // 存在除了1和本身以外的因数,不是素数
}
}
return 1; // 没有除了1和本身以外的因数,是素数
}
void findPrimes(int start, int end) {
printf("素数:");
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int start, end;
printf("请输入两个整数:");
scanf("%d %d", &start, &end);
findPrimes(start, end);
return 0;
}
このプログラムを実行すると、2つの整数をインプットし、その間の素数をアウトプットします。
注意:以上コードは単なる例のため、効率が悪い場合があります。より効率的な素数判定法が必要な場合は、エラトステネスのふるい法、オイラーのふるい法などのより複雑なアルゴリズムを使用してください。