描述
输入一个数,输出其素因子分解表达式。
输入
输入一个整数 n (2 <= n < 100)。
输出
输出该整数的因子分解表达式。
表达式中各个素数从小到大排列。
如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。
样例输入
60
样例输出
2^2*3*5
#include<stdio.h>
int prime(int n)
{
for(int i=2;i<n;i++)
{
if(n%i==0) return 0;
}
return 1;
}
int main()
{
int i,n,ori,last,ans[101]={0};
scanf("%d",&n);
ori=n;
for(i=2;i<=ori;i++)
{
while(prime(i)==1&&n%i==0)
{
ans[i]++;
n=n/i;
}
if(n==1)
{
last=i;
break;
}
}
for(i=2;i<last;i++)
{
if(ans[i]==1)
{
printf("%d*",i);
}
if(ans[i]>1)
{
printf("%d^%d*",i,ans[i]);
}
}
if(ans[last]=1)
{
printf("%d",last);
}
if(ans[last]>1)
{
printf("%d^%d",last,ans[last]);
}
return 0;
}