//想的是储存质数,再除以最小的因素。为什么测试点为1999520027的输出为1。。本来是99991。。求助
#include<stdio.h>
#include<math.h>
int main()
{
unsigned long long int n,a[100001]={0},i,j,num=0;
scanf("%lld",&n);
for(i=2;i<n;i++){
int isprime=1;
for(j=2;j<=sqrt(i);j++){
if(i%j==0){
isprime=0;
break;
}
}
if(isprime){
a[num++]=i;
}
}
for(i=0;i<num;i++){
if(n%a[i]==0){
printf("%d",n/a[i]);
return 0;
}
}
}