题目描述
给定一个整数 N,找出它的所有质因子,并按如下格式输出:
N=pk11×pk22×…×pkmm
注意: 如果 N=1 则输出 1=1。
输入格式
一个整数 N。
输出格式
输出时,按 N=p1^k1p2^k2…*pm^km 的格式输出答案。
其中 pi 是质因子,应按照递增顺序排列,ki 是 pi 的指数,如果 ki 为 1,则不必输出。
数据范围
1≤N≤231−1
输入样例
97532468
输出样例
97532468=2^2*11*17*101*1291
C++ 代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main ()
{
LL x;
scanf("%lld",&x);
printf("%lld=",x);
if(x==1)
{
cout<<"1";
return 0;
}
int t=0;
for(int i=2;i<=x / i;i++)
{
int co=0;
while(x%i==0)
{
x /= i;
co++;
}
if(co>0)
{
if(t==0)
{
t=1;
printf("%d",i);
}
else{
printf("*%d",i);
}
if(co>1) printf("^%d",co);
}
}
if(x>1)
{
if(t==1) printf("*%lld",x);
else printf("%lld",x);
}
return 0;
}