#include <bits/stdc++.h>
using namespace std;
int g(int s)
{
for(int i=2;i<=sqrt(s);i++)
{
if(s%i==0) return 0;
}
return 1;
}
int f(int n)
{
int i = 2, t = 0;
if(g(n))
{
cout<<n;
return 0;
}
while (n % i == 0) {
n /= i;
t++;
}
if (t == 1)
printf("%d", i);
else if(t!=0)
{
printf("%d^%d", i,t);
}
i++;
t = 0;
while (n != 1) {
while (n % i == 0) {
n /= i;
t++;
}
if (t == 1)
printf(" * %d", i);
else if(t!=0)
{
printf(" * %d^%d", i,t);
}
i++;
t = 0;
}
}
int main()
{
int n;
cin>>n;
f(n);
return 0;
}
共 6 条回复
@root 还是只有80分,有一个超时了
@root 还是只有80分,有一个超时了
@root
咋改?