求助!
Unaccpeted
4 MLE 5 TLE 1 AC
上代码:
#include <bits/stdc++.h>
using namespace std;
map<long long int, long long int>a;
bool isp(long long int n){
for(long long int i = 2;i <= sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
long long int sum = 1;
int x;
void zys(long long int n){
if(sum==x){
return;
}
if(isp(n)){
a[n]++;
sum*=n;
return;
}
for(int i = 2;i <= n;i++){
if(n%i==0){
zys(i);
}
}
}
int main(){
long long int n;
cin >> n;
x = n;
zys(n);
int cnt = 0;
for(pair<long long, long long>i : a){
cnt++;
if(i.second == 1) {
cout << i.first;
if (cnt != a.size()) cout << " * ";
}
else {
cout << i.first << "^" << i.second;
if (cnt != a.size()) cout << " * ";
}
}
}