代码:
#include<cstdio>
#include<iostream>
using namespace std;
const int MaxN=1e5+50;
int prime[MaxN]={0};
bool judge[MaxN]={false};
long long max(long long a,long long b){
return a<b?b:a;
}
int main(){
long long n,total=0;
cin>>n;
for(int i=2;i<MaxN;i++){
if(!judge[i])
prime[total++]=i;
for(int j=0;j<total;j++){
if(i*prime[i]>MaxN)
break;
judge[i*prime[j]]=true;
if(i%prime[j]==0)
break;
}
if(n%prime[total-1]==0){
cout<<max(n/prime[total-1],prime[total-1]);
break;
}
}
return 0;
}