输入整数n,若n不是素数,则对n进行质因数分解,并将n以质因数从小到大排序的乘积形式输出,否则输出"Prime"。
样例输入:
90 17
样例输出:
90=2*3*3*5 Prime
先判断是否为素数,不是素数则寻找其素数因子。
#include <stdio.h>
#include <math.h>
int IsPrime(int num);
void PrimeFactor(int num);
int main()
{
int num;
while (scanf("%d", &num)) PrimeFactor(num);
return 0;
}
int IsPrime(int a)
{
int b = 1;
if (a <= 1)
b = 0;
for (int i = 2; i <= sqrt(a); i++)
{
if (a%i == 0)
{
b = 0;
break;
}
}
return b;
}
void PrimeFactor(int num)
{
if (IsPrime(num)!=0)
{
printf("Prime");
}
else
{
printf("%d=", num);
while (IsPrime(num) == 0)
{
for(int i=2;i<num;i++)
{
if (num%i == 0 && IsPrime(i)==1)
{
printf("%d*", i);
num = num / i;
break;
}
}
}
printf("%d", num);
}
}
样例输出: