Description
任意一个正整数可以分解成唯一的质因数的乘积,给出正整数,请计算出它的质因数分解式。
输入
每行一个正整数2<=n<=10^8。
输出
每行输出一个对应结果。使用”^”表示幂,”*”表示乘,质因子应该按从小到大的顺序输出,如果某一个质因子只有一次,那么就不要输出它的幂。
Sample Input
2
6
36
Sample Output
2
2*3
2^2*3^2
解题思路: 本题就是单纯的模拟,就不费多少笔墨了,请看代码。有疑问的请评论留言。
AC代码:
#include <stdio.h>
int main()
{
int n,i,j;
while (scanf("%d",&n) != EOF)
{
for ( i=2; i*i<=n; i++)
{
for ( j=0; n%i==0; j++) n/=i;
if (j==1) printf("%d",i);
else if ( j > 1) printf("%d^%d",i,j);
if (n!=1 && j!=0) printf("*");
}
if (n!=1) printf("%d",n);
printf("\n");
}
return 0;
}