#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define maxn 100010
typedef long long ll;
bool is_prime(int n)
{
if(n<=1)
return false;
int sqr=(int)sqrt(1.0*n);
for(int i=2;i<=sqr;i++)
{
if(n%i==0)
return false;
}
return true;
}
int prime[maxn];
int pnum;
void find_prime()
{
for(int i=2;i<maxn;i++)
{
if(is_prime(i)==true)
{
prime[pnum++]=i;
}
}
}
struct factor{
int x,cnt;
}fac[10];
int main()
{
int n;
scanf("%d",&n);
find_prime();
if(n==1)
printf("1=1");
else
{
printf("%d=",n);
int sqr=(int)sqrt(1.0*n);
int num=0;
for(int i=0;i<pnum&&prime[i]<=sqr;i++)
{
if(n%prime[i]==0)
{
fac[num].x=prime[i];
fac[num].cnt=0;
while(n%prime[i]==0)
{
//fac[num].x=prime[i];
fac[num].cnt++;
n/=prime[i];
}
num++;
}
if(n==1)
break;
}
if(n!=1)
{
fac[num].x=n;
fac[num].cnt=1;
num++;
}
for(int i=0;i<num;i++)
{
if(i>0)
printf("*");
printf("%d",fac[i].x);
if(fac[i].cnt>1)
printf("^%d",fac[i].cnt);
}
}
return 0;
}
PAT——A1059 Prime Factors
猜你喜欢
转载自blog.csdn.net/qq_42232118/article/details/82290613
今日推荐
周排行