C言語で素数を表現の方法

C言語では、数値が素数かどうかを判定する方法として以下が挙げられます。

  1. 2からn-1までを繰り返し辿り、nがそれらの数で割り切れるか確認する。nがどれかの数で割り切れるならnは素数ではない。どれの数字でも割り切れないならnは素数である。
#include <stdio.h>

int isPrime(int n) {
    if (n <= 1) {
        return 0;
    }

    for (int i = 2; i < n; i++) {
        if (n % i == 0) {
            return 0;
        }
    }

    return 1;
}

int main() {
    int n;
    printf("请输入一个整数: ");
    scanf("%d", &n);

    if (isPrime(n)) {
        printf("%d是素数\n", n);
    } else {
        printf("%d不是素数\n", n);
    }

    return 0;
}
  1. より効率的なアルゴリズムを使用すれば、2からsqrt(n)までを調べればよい。nを割り切れる数が1つでも見つかった場合、nは素数ではない。割り切れる数が見つからなかった場合、nは素数である。
#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 n;
    printf("请输入一个整数: ");
    scanf("%d", &n);

    if (isPrime(n)) {
        printf("%d是素数\n", n);
    } else {
        printf("%d不是素数\n", n);
    }

    return 0;
}

入力された整数が素数かどうかを判定し、結果を出力するコード。

bannerAds