CF762A (整除)

祝宁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;
} 
posted @ 2020-08-21 19:34  邦的轩辕  阅读(103)  评论(0编辑  收藏  举报