题目大意:给你一个 n 和 k 求 n 的第 k 个因数。

#include<iostream>
#include <algorithm>
#include <queue>
#include <string>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int moder = 1e9 + ;
const int MAXN=; int main()
{
ll n,k;
cin >> n >> k;
vector<ll>v;
for(ll i=;i <= sqrt(n);i++)
{
if(n%i == ) v.push_back(i);
if(n%i == &&i*i != n) v.push_back(n/i);
}
sort(v.begin(),v.end());
if(k >= v.size()) puts("-1");
else cout << v[k-] << endl;
return ;
}

1.用了vector

2.i 如果是 n 的因数,n / i 也一定是 n 的因数

05-11 19:38