C言語 素数判定:効率的なアルゴリズムと実装
素数かどうかを判断するには、次の方法を使用することができます:
- まず、この数が1以下かどうかを判断し、もし1以下であれば、素数ではありません。
- 2から数字nの平方根までの数で割り切れるかどうかを1つずつ確認し、割り切れた場合は素数ではないと判定します。
- もし、その数が2からsqrt(n)までの数で割り切れない場合は、素数である。
以下は、素数を判定するためにC言語で書かれたサンプルコードです。
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
上記のコードは、最初に、数が素数かどうかを判定するisPrimeという関数を定義してから、main関数でユーザーの入力を読み取り、isPrime関数を呼び出してその数が素数かどうかを判定し、結果を出力する。