C言語での素因数分解問題をどのように解決するか?

分解素因数的問題,可以編寫一個程式來實現這一功能。以下是一個簡單的以C語言實現素因數分解的範例程式:

#include <stdio.h>

void primeFactors(int n) {
    // 打印出所有的2因子
    while (n % 2 == 0) {
        printf("%d ", 2);
        n = n / 2;
    }
    
    // n现在必须是一个奇数
    for (int i = 3; i * i <= n; i = i + 2) {
        while (n % i == 0) {
            printf("%d ", i);
            n = n / i;
        }
    }
    
    // 如果n本身是一个质数大于2
    if (n > 2) {
        printf("%d ", n);
    }
}

int main() {
    int n;
    printf("请输入一个数字:");
    scanf("%d", &n);
    
    printf("分解质因数为:");
    primeFactors(n);
    
    return 0;
}

このプログラムは、最初に与えられた数字の素因数を計算し出力するprimeFactors関数を定義します。次に、main関数ではユーザーが数字を入力し、primeFactors関数を呼び出して素因数分解して出力します。

プログラムを実行した後、数字を入力すると、その数字のすべての素因数が出力されます。

bannerAds