祝宁AKIOI
注意
1.n<=1e15,所以循环i要开long long
2.注意循环跳出条件
#include<bits/stdc++.h>
using namespace std;
long long num[20000000];
long long cnt;
int main()
{
long long n, k;
cin >> n >> k;
// num[1]=1;
// cnt=1;
for (long long i = 1; i <= sqrt(n); i++)
{
if (n%i == 0)
{
cnt++, num[cnt] = i;
if(i!=n/i) //不能写成if(cnt>=k),break;
cnt++ , num[cnt]= n/i;
}
}
sort(num+1,num+1+cnt);
if (cnt >= k)
cout << num[k] << endl;
else
cout << -1 << endl;
}