学会了处理1e9素数的新思路,但目前只供挑选最大质因子用
牛客刷题完结撒花!
添加链接描述
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
string str;
int zhi(int x){
int ans = 0;
for(int i = 2; i * i <= x; i ++ ){
while(x % i == 0){ //为什么这里可以是while?
if(i > ans) ans = i;
x /= i;
}
}
return max(x, ans);
}
signed main()
{
cin>>n;
for(int i = 0; i < n; i ++ ){
cin>>str;
int tt = 0;
int len = str.length();
for(int j = 0; j < len; j ++ ){
if(str[j] >= '0' && str[j] <= '9') tt = tt * 10 + str[j] - '0';
}
int ans = zhi(tt);
cout<<ans<<endl;
}
return 0;
}