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関数を呼び出して素因数分解して出力します。
プログラムを実行した後、数字を入力すると、その数字のすべての素因数が出力されます。