把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。 输入一个正整数n,将n分解成质因数乘积的形式。c语言
时间: 2024-10-27 19:03:29 浏览: 116
在 C 语言中,分解质因数通常会通过循环和条件判断来实现。下面是一个简单的示例函数,用于分解一个给定的正整数 `n` 的质因数:
```c
#include <stdio.h>
#include <stdbool.h> // 使用bool类型
// 函数声明,检查是否为质数
bool is_prime(int num);
// 主函数分解质因数
void prime_factors(int n) {
int i = 2; // 从2开始尝试
while (i * i <= n) { // 只需测试到√n,因为大于√n的因子必定有对应小于√n的配对因子
if (n % i == 0) {
printf("%d ", i); // 输出当前的质因数
n /= i; // 更新n,去除已发现的质因数
// 检查剩余部分是否仍为质数
if (is_prime(n)) {
printf("%d", n); // 如果还有剩余且是质数,直接输出
}
} else {
i++; // 否则增加i继续查找下一个质因数
}
}
// 若n仍大于1,说明n本身就是质数
if (n > 1 && is_prime(n)) {
printf("%d", n);
}
}
// 判断一个数是否为质数
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;
}
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
printf("Prime factors of %d are: ", n);
prime_factors(n);
return 0;
}
```
当你运行这个程序并输入一个正整数,它将输出该数字的质因数分解结果。
阅读全文