编写一个函数,对输入的整数k输出它的所有素数因子。 例如:当k=126时,素数因子为:2,3,3,7。 要求按如下格式输出:126 = 2 * 3 * 3

编写一个函数,对输入的整数k输出它的全部素数因子。 例如:当k=126时,素数因子为:2,3,3,7。 要求按如下格式输出:126 = 2 * 3 * 3 *
编写一个函数,对输入的整数k输出它的全部素数因子。
例如:当k=126时,素数因子为:2,3,3,7。
要求按如下格式输出:126 = 2 * 3 * 3 * 7。
求思路。。。完全不懂

------解决方案--------------------
#include "stdio.h"
#include "math.h"

unsigned int GetPrimeFactor(unsigned int uiNum)
{
unsigned int i;
unsigned int uiSqrt = (unsigned int)sqrt((float)uiNum);

for(i = 2; i < uiSqrt; i++)
{
if(uiNum % i == 0)
{
return i;
}
}

return uiNum;
}


void main(void)
{
int iSrc = 126;
unsigned int uiSrc = abs(iSrc);
unsigned int uiPrime;

printf("%d = ", iSrc);
if(iSrc < 0)
{
printf("-");
}
while(uiSrc)
{
uiPrime = GetPrimeFactor(uiSrc);
uiSrc /= uiPrime;
printf("%d", uiPrime);
if(uiSrc != 1)
{
printf(" * ");
}
else
{
printf("\n");
break;
}
}

getchar();
}

无论iSrc是正数还是负数都可以输出。你可以修改成使用例如scanf输入数据方式的。