分解质因数裸题,注意对\(1\)特判下,为什么\(1\)还要分解质因数啊喂,迷惑行为-_-。
PII fac[10];
int n;
int cnt;
void divide(int n)
{
for(int i=2;i*i<=n;i++)
if(n % i == 0)
{
fac[cnt].fi=i;
while(n % i == 0)
{
fac[cnt].se++;
n/=i;
}
cnt++;
}
if(n > 1) fac[cnt++]={n,1};
}
int main()
{
cin>>n;
divide(n);
cout<<n<<'=';
if(n == 1) cout<<1;
else
{
for(int i=0;i<cnt;i++)
{
if(i) cout<<'*';
cout<<fac[i].fi;
if(fac[i].se > 1) cout<<'^'<<fac[i].se;
}
}
//system("pause");
return 0;
}