分解质因数输入一个正整数n,将n分解成质因数乘积的形式,输出质因数从大到小C语言从大到小
时间: 2024-10-27 20:09:04 浏览: 48
将一个正整数分解质因数 例如:输入90,打印出90=2*3*3*5(C实现)
在C语言中,我们可以编写一个函数来分解一个正整数n为质因数的乘积,并按照从大到小的顺序输出。这里是一个简单的示例:
```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 max_factor = n;
for (int i = sqrt(max_factor); i >= 2; i--) { // 从最大可能因子开始找
if (max_factor % i == 0 && is_prime(i)) {
printf("%d ", i);
n /= i; // 更新n并跳过i的倍数
break;
}
}
}
printf("\n");
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
prime_factors(num);
return 0;
}
```
在这个程序中,我们首先定义了一个辅助函数`is_prime()`用于检查是否是质数。然后,主函数`prime_factors()`通过不断地找到并打印出最大的质因数,直到n变为1,实现了质因数分解。
运行这个程序后,它会提示用户输入一个正整数,然后分解并按从大到小的顺序显示质因数。
阅读全文