#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;
typedef long long ll;
bool isprime(int x){
for(int i=2;i*i<=x;i++){
if(x%i==0) return false;
}
if(x==0 || x==1) return false;
else
return true;
}
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
int n;
cin>>n;
int d=0;
cout<<n<<"=";
if(isprime(n)|| n==1 ) cout<<n;
else{
while(n%2==0){
d++;
n/=2;
}
if(n!=1){
if(d==1)cout<<"2*";
else if(d>1) cout<<"2^"<<d<<"*";
}else{
if(d==1)cout<<"2";
else if(d>1) cout<<"2^"<<d;
}
for(int i=3;i<=n;i+=2){
d=0;
if(isprime(i)){
while(n%i==0){
d++;
n/=i;
}
if(n!=1){
if(d==1)cout<<i<<"*";
else if(d>1) cout<<i<<"^"<<d<<"*";
}else{
if(d==1)cout<<i;
else if(d>1) cout<<i<<"^"<<d;
}
}
}
}
return 0;
}
【PAT】1059. Prime Factors
最新推荐文章于 2022-09-28 16:59:22 发布