#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=100010;
bool p[maxn]={0};
int prime[maxn],pnum=0;
void prime_make()//筛法求素数
{
for(int i=2;i<maxn;i++)
{
if(p[i]==0)
{
prime[pnum++]=i;
for(int j=i+i;j<maxn;j=j+i)
{
p[j]=1;
}
}
}
}
int main()
{
long long n,t;
int zhishu[10000]={0},i=0,maxf;
prime_make();//打表
cin>>n;
t=n;
if(n==1)//特例1,测试点5
{
cout<<"1=1";
return 0;
}
while(n>1)//质因子分解
{
if(n%prime[i]==0)
{
n=n/prime[i];
zhishu[i]=zhishu[i]+1;
maxf=prime[i];
}
else
{
i=i+1;
}
}
cout<<t<<"=";
for(i=0;i<10000;i++)//按格式输出
{
if(zhishu[i]!=0)
{
cout<<prime[i];
if(zhishu[i]>1)
{
cout<<"^"<<zhishu[i];
}
if(prime[i]!=maxf)
{
cout<<"*";
}
}
}
return 0;
}
pat甲1059 Prime Factors
最新推荐文章于 2021-03-06 10:26:56 发布