从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m以质因数从小到大的顺序排列的乘积形式输出,否则输出“It is a prime number”。例如,用户输入90时,程序输出90=2×3×3×5;用户输入17时,程序输出“It is a prime number”。
#include <stdio.h>
#include <math.h>
int isPrime(int n);
void solve(int n);
int main()
{
int n, ret;
scanf("%d",&n);
ret = isPrime(n);
if(ret)
{
printf("It is prime number");
}
else
{
solve(n);
}
return 0;
}
int isPrime(int n)
{
int i;
if(n <= 1)
{
return 0;
}
for(i=2;i<=sqrt(n);i++)
{
if(n % i == 0)
{
return 0;
}
}
return 1;
}
void solve(int n)
{
int i;
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",n);
}