整数因子分解问题,例如当n=12时,共有8种不同的分解式,用C语言编写这类问题的代码
时间: 2023-05-22 07:07:02 浏览: 81
整数因子分解问题
5星 · 资源好评率100%
以下是一个C语言程序,它能够对一个整数分解出所有的因子组合:
```
#include <stdio.h>
void factor(int n, int m, int *a) {
int i;
for (i = m; i <= n; i++) {
if (n % i == 0) {
a[m] = i;
if (n == i) {
int j;
for (j = 1; j <= m; j++) printf("%d ", a[j]);
printf("\n");
} else {
factor(n / i, m + 1, a);
}
}
}
}
int main() {
int n, a[100];
scanf("%d", &n);
factor(n, 1, a);
return 0;
}
```
该程序使用递归的方式,对一个整数n进行因子分解,使用数组a存储因子组合。其中m表示当前使用的因子在数组a中的下标,初始值为1。该程序会将n除以所有可能的因子,并将因子存入数组a中,在递归调用自身时将n除以该因子。当n等于当前使用的因子i时,该程序会将数组a中的所有元素输出。
阅读全文