c语言质因数分解 输入一个正整数x(2<=x<100),将其分解质因数后输出。
时间: 2024-10-26 12:17:01 浏览: 58
在C语言中,我们可以使用循环结构和条件判断来实现质因数分解。下面是一个简单的程序示例,它会接受用户输入的一个正整数,并打印出它的质因数:
```c
#include <stdio.h>
// 判断是否为质数的辅助函数
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
// 质因数分解函数
void prime_factors(int x) {
while (x > 1) {
// 如果当前数是质数
if (is_prime(x)) {
printf("%d ", x); // 打印质数
} else {
// 否则找到第一个因子并除以它
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
printf("%d ", i);
x /= i; // 更新x值,继续找下一个因子
break;
}
}
}
}
}
int main() {
int x;
printf("请输入一个正整数(2 <= x < 100): ");
scanf("%d", &x);
if (x >= 2 && x < 100) { // 确保输入有效
prime_factors(x);
printf("\n");
} else {
printf("输入错误,请输入一个2到99之间的正整数。\n");
}
return 0;
}
```
在这个程序中,我们首先检查输入是否在指定范围内,然后通过`is_prime()`函数找出质因数。对于非质数,我们会寻找其最小的因子并将输入更新,直到输入变为质数为止。
阅读全文