#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#include<cstring>
#include<cmath>
#include<map>
#include<stack>
#define N 100005
#define ll long long
using namespace std;
int ok[100000],prime[20000];
int cnt = 0;
vector<pair<int,int> >v;
void pre()
{
memset(ok,0,sizeof(ok));
for(int i = 2;i<100000;i++)
{
if(!ok[i])
{
prime[cnt++] = i;
for(int j = i;j<100000;j+=i)ok[j] = 1;
}
}
}
int main()
{
int x,y;
pre();
while(scanf("%d",&x)!=EOF)
{
y = x;
v.clear();
if(x == 1)
{
printf("1=1\n");
continue;
}
int i = 0;
while(prime[i]*prime[i]<=x)
{
int num = 0;
while(x%prime[i] == 0)
{
num++;
x/=prime[i];
}
if(num)v.push_back(make_pair(prime[i],num));
i++;
}
if(x!=1)v.push_back(make_pair(x,1));
printf("%d=",y);
for(i = 0;i<v.size()-1;i++)
{
if(v[i].second<2)printf("%d*",v[i].first);
else printf("%d^%d*",v[i].first,v[i].second);
}
if(v[i].second<2)printf("%d\n",v[i].first);
else printf("%d^%d\n",v[i].first,v[i].second);
}
return 0;
}
pat1059 Prime Factors
最新推荐文章于 2022-09-08 02:57:29 发布