题解:SP8057 AMR10C - Square Free Factorization
AK_lwh_888 · · 题解
题目大意:题目是让我们分解质因数,然后需要求出分解完以 后最大的一个指数。
做题思路:我们要求出指数,只要一一枚举,如果可以除就 while 循环,只要他可以被
最后循环结束的时候我们来判断一下是不是大于当前最大的值,大于就将他替换掉就可以了。
中间我们还要加上一个特判。
代码如下:
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
int T,x;
cin>>T;
while(T--){
cin>>x;
int ans=0,maxx=-1e9;
for(int i=2;i<=x/i;++i){
while(x%i==0)ans++,x/=i;
maxx=max(maxx,ans);
}
if(x!=1)maxx=max(maxx,1LL);
cout<<maxx<<"\n";
}
return 0;
}