输入一个正整数n,如果n为合数除了1和本身,还有因数的称为合数),将n进行质因数分解。例如,输入100,输出2、2、5、5,当输入不为合数时,输出error,用C语言写
时间: 2024-11-25 20:22:18 浏览: 25
python简单实例训练(21~30)
在C语言中,我们可以编写一个函数来实现这个功能。首先,我们需要检查输入是否为合数。然后,利用循环和取模操作找到所有质因数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
void prime_factors(int n) {
if (is_prime(n))
printf("error");
else {
while (n != 1) {
int factor = 2; // Start with the smallest prime factor
while (n % factor == 0) {
printf("%d", factor);
n /= factor;
}
factor++;
}
printf("\n"); // Print a newline after all factors are printed
}
}
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
prime_factors(n);
return 0;
}
```
在这个程序中,`is_prime` 函数用于检查数字是否为质数,`prime_factors` 函数则负责找出并打印合数的质因数。当用户输入非合数时,会输出 "error"。
阅读全文