题意概括
————————————————
一道分解质因数的模板题……
(问题是作者太蒻了,居然翻车了一次!!!)
思路分析
—————————————————
这道踢并不是难在分解质因数
而是难在
有没有考虑较大的质数的情况
不然是会TLE的……
代码实现
——————————————————
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
signed main()
{
cin>>n;
cout<<n<<"=";
int d = 2;
bool f = 0;
for(int i=2;i*i<=n;i++){ //特判较大质数,防止TLE
if(n % i == 0){
f=1;
break;
}
}
if(!f){
cout<<n;
return 0;
}
//分解质因数
while(n > 1){
int tmp=0;
while(n%d == 0){
n/=d;
tmp++;
}
if(tmp == 1)cout<<d;
else if(tmp != 0)cout<<d<<"^"<<tmp;
if(tmp != 0) if(n > 1) cout<<"*";
d++;
}
return 0;
}