请编写程序,输入一个正整数n,对其进行质因数分解,输出分解结果。 输入格式: 输入一个正整数n(2<=n)。 输出格式: 分解的结果。C语言
时间: 2024-12-11 07:16:51 浏览: 63
你可以使用C语言编写以下程序来实现这个功能。这里我们使用了循环和条件判断来找到并打印出所有正整数n的质因数:
```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) {
int factor = 2;
printf("Prime factors of %d: ", n);
while (n > 1) {
if (is_prime(factor)) {
while (n % factor == 0) {
printf("%d ", factor);
n /= factor;
}
}
factor++;
if (factor > n)
factor = n;
}
printf("\n");
}
int main() {
int n;
scanf("%d", &n);
// 检查输入是否合法
if (n <= 0 || n != (int)n) {
printf("Invalid input! Please enter a positive integer.\n");
return 1;
}
prime_factors(n);
return 0;
}
```
在这个程序中,`is_prime`函数用于检查一个数是否为质数,`prime_factors`函数则负责找出并打印n的所有质因数。如果输入的不是一个正整数,主函数会给出错误提示。
阅读全文
相关推荐



















