输入一个整数k(2≤k≤10000),打印它的所有的质因子。例如:输入90,打印出2、3、3、5。使用c语言
时间: 2024-12-12 19:19:23 浏览: 4
在C语言中,你可以编写一个函数来找到一个整数的所有质因子。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数来判断是否为质数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
// 打印质因子
void printPrimeFactors(int n) {
while (n > 1) {
bool isFactor = isPrime(n);
printf("%d ", n);
while (isFactor && n % 2 == 0) {
printf("%d ", 2);
n /= 2;
}
// 如果当前数不是2,继续检查其他奇数因子
for (int i = 3; i * i <= n; i += 2) {
while (n % i == 0) {
printf("%d ", i);
n /= i;
}
}
// 如果n还有因子,说明最后一个因子大于sqrt(n),直接输出它
if (n > 2) {
printf("%d ", n);
}
isFactor = true; // 设定为true,用于下一轮循环
}
printf("\n");
}
int main() {
int k;
printf("请输入一个整数k(2<=k<=10000): ");
scanf("%d", &k);
printPrimeFactors(k);
阅读全文