第1个回答 2013-06-24
int prime_list[] = {2, 3, 5, 7, 11, .....}; // 事先准备好的质数表
int prime_count = xxx; // 质数表中的元素个数
int zhidao_561722153(int num) {
int i = prime_count - 1;
int max = prime_list[i];
if (num > max * max) {
print("输入的数字太大,超过检查范围\n");
return -1;
}
print("%d的因子有: %d, ", num, num); // num本身也是因子
for (; i>=0; i--) {
if (num % prime_list[i] == 0) { // 模为0则为因子
print("%d, ", i);
}
}
print("%d\n", 1); // 1也是因子
return 0;
}
第2个回答 2013-06-24
我不知道啥子算法,下面是我的思路
#include "stdio.h"
#include "stdlib.h"
main()
{
int n, i;
printf("输入一个数:\n");
scanf("%d", &n);
printf("此数分解因数后%d=", n);
for (i = 2; i <= n; i++)
while (n != i)
{
if (n % i == 0)
{
printf("%d*", i);
n = n / i;
}
else
break;
}
printf("%d", n);
getchar();
}
分解成因素,祝你愉快!