输入一个整数k(2≤k≤10000),打印它的所有的质因子。例如:输入90,打印出2、3、3、5。使用c
时间: 2024-12-12 15:23:56 浏览: 6
在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) {
for (int i = 2; i * i <= n; ++i) {
while (n % i == 0 && is_prime(i)) {
printf("%d ", i);
n /= i;
}
}
// 如果n大于1,它就是一个质因子
if (n > 1) {
printf("%d", n);
}
}
int main() {
int k;
printf("请输入一个整数k(2≤k≤10000): ");
scanf("%d", &k);
if (k >= 2 && k <= 10000) {
printf("k的质因子为: ");
prime_factors(k);
} else {
printf("无效输入,k应该在2到10000之间。\n");
}
return 0;
}
```
在这个程序里,我们首先定义了一个`is_prime`函数用于检查数字是否为质数,然后`prime_factors`函数会找出并打印出给定整数的所有质因子。注意,这个程序假定了用户输入的是有效的整数范围。
阅读全文