请编写一个易于理解c语言程序实现它
时间: 2024-11-05 10:30:08 浏览: 9
本章任务-第01章 第一个C#程序
当然,下面是一个简单的C语言程序,用于实现分解任意给定正整数的质因数分解:
```c
#include <stdio.h>
#include <stdbool.h> // 使用bool类型
// 辅助函数,判断一个数是否是质数
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) {
printf("Prime factors of %d are: ", n);
for (int i = 2; ; i++) { // 从2开始测试每个数
while (n % i == 0 && is_prime(i)) { // 只保留质因数
printf("%d ", i);
n /= i; // 更新n
}
if (n == 1) break; // 当n变为1时,退出循环
}
printf("\n");
}
int main() {
int input;
printf("Enter a positive integer: ");
scanf("%d", &input);
prime_factors(input);
return 0;
}
```
在这个程序中,我们首先定义了一个辅助函数`is_prime()`用于检查一个数是否是质数。主函数`prime_factors()`接收用户输入的正整数,不断测试每个可能的因子,如果该因子能被整除并且是质数,就打印出来并从总和中移除。
运行这个程序,用户会看到输入的正整数分解为其质因数的结果。
阅读全文