根据算术基本定理,任何一个合数N,都可以被分解为N=a1*a2*...an(a1≤a2≤...≤an,且ai为质数,1≤i≤n).an就是这个合数的最大质因子
对于质数,其最大质因数就是本身。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+5;
bool check(ll x){
for(ll i=2;i<=sqrt(x);i++){
if(x%i == 0) return 0;
}
return 1;
}
int main() {
ll n,ans;
cin>>n;
for(ll i=2;i<=n;i++){
if(check(i) && n%i == 0){
while(n%i==0){
n/=i;
}
ans = i;
}
}
cout<<ans<<endl;
return 0;
}