将一个正整数分解质因数,例如,输入90,输出2 3 3 5。 输入格式: 输入一个正整数n(2<=n<=2000)。 输出格式: 从小到大输出n的所有质因子,每两个数之间空一格(最后一个数后面没有空格)。用c语言
时间: 2024-10-28 09:07:50 浏览: 32
在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) {
while (n > 1) {
int factor = 2;
while (n % factor == 0 && is_prime(factor)) {
printf("%d ", factor);
n /= factor;
}
factor++;
}
printf("\n");
}
int main() {
int n;
scanf("%d", &n);
prime_factors(n);
return 0;
}
```
这个程序首先定义了一个`is_prime`函数用于检查是否为质数,然后在`prime_factors`函数中,从最小的质数2开始,如果能整除n且本身也是质数,则打印出来并将n除以该质因子。这个过程会一直持续直到n变为1。
运行此程序时,输入如 `scanf("%d", &n);`,然后输入你要分解质因数的数字,比如90。
阅读全文