c语言输入一个合数X,对X分解质因数,并按照“质因数(出现次数)”的方法输出。例如X=7000,输出:7000=2(3)5(3)7(1)。
时间: 2024-03-24 09:41:19 浏览: 99
c语言分解质因数
以下是一个实现将合数分解质因数并输出的C语言程序:
```c
#include <stdio.h>
void factorization(int n)
{
int i, j;
int prime[100] = {0}; // 存储质因数
int count[100] = {0}; // 存储质因数的出现次数
int index = 0; // 质因数个数
for (i = 2; i <= n; i++) {
if (n % i == 0) { // 找到一个质因数
prime[index] = i;
count[index]++;
n /= i;
i--; // 继续判断当前的i是否还是一个质因数
if (n == 1) break; // n已经分解完毕
for (j = 0; j < index; j++) {
if (i == prime[j]) { // i已经出现过了
count[j]++;
index--;
break;
}
}
index++;
}
}
printf("%d=", n);
for (i = 0; i < index; i++) {
printf("%d", prime[i]);
if (count[i] > 1)
printf("(%d)", count[i]);
else
printf("(1)");
if (i != index - 1)
printf("*");
}
}
int main()
{
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
printf("%d=", n);
factorization(n);
printf("\n");
return 0;
}
```
该程序首先用`factorization`函数将输入的数`n`分解为质因数并统计每个质因数的出现次数,然后按照题目要求输出结果。注意,在统计质因数的出现次数时,如果一个质因数已经出现过,应该将其出现次数加1,并将当前的质因数个数减1。
阅读全文