样例
如:输入 90,输出 2 3 3 5 或 90=2*3*3*5。
思路
寻找下一个质数并判断是不是因数
代码
#include <stdio.h>
#include <math.h>
int AS(int x) //找到下一个质数
{
while (++x)
{
int a = sqrt(x), i = 2;
for (; i <= a; i++)
{
if (x % i == 0)
break;
}
if (i == a + 1)
return x;
}
}
void AD(int num, int t) //判断这个质数是不是因数
{
t = AS(t); //求下一个质数
while (num % t == 0) //判断这个质数出现几次
{
num /= t;
printf("%d ", t); //打印
}
if (num != 1) //是否终止循环
AD(num, t);
}
int main()
{
int num = 0;
scanf("%d", &num);
AD(num, 1);
return 0;
}