codeforce 762A
在找完质数之后先判断再排序,否则会一直超时
#include <vector>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const long long N = 1e10 + 5;
long long n,k;
vector<long long> ans;
int main(){
cin >> n >> k;
for(long long i = 1; i * i <= n; i++){
if(n % i == 0) {
ans.push_back(i);
if ((n / i) != i) {
ans.push_back(n / i);
}
}
}
if(k > ans.size()){
cout << "-1" << endl;
return 0;
}
sort(ans.begin(),ans.end());
cout << ans[k - 1];
return 0;
}