#include<iostream>
#include<math.h>
using namespace std;
struct factor{
int x,cnt;
};
const int maxn=100000;
int num,prime[maxn];
bool p[maxn]={0};
void Find_Prime()
{
for(int i=2;i<maxn;i++){
if(p[i]==false){
prime[num++]=i;
for(int j=i+i;j<maxn;j+=i) p[j]=true;
}
}
}
int main()
{
Find_Prime();
int n,k=0;
factor fact[15];
cin>>n;
int sqr=(int)sqrt(1.0*n);
int origin=n;
for(int i=0;prime[i]<=sqr;i++){
if(n%prime[i]==0){
fact[k].x=prime[i];
fact[k].cnt=0;
while(n%prime[i]==0){
fact[k].cnt++;
n/=prime[i];
}
k++;
}
}
if(n!=1){
fact[k].x=n;
fact[k].cnt=1;
k++;
}
printf("%d=",origin);
if(origin==1) printf("1");
for(int i=0;i<k;i++){
printf("%d",fact[i].x);
if(fact[i].cnt>1) printf("^%d",fact[i].cnt);
if(i!=k-1) printf("*");
}
return 0;
}
PAT A 1059 Prime Factors
最新推荐文章于 2022-05-06 14:14:10 发布