CodeForces - 762A k-th divisor
3923 단어 onlinejudgeCodeForces
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given two integers n and k. Find k-th smallest divisor of n, or report that it doesn’t exist.
Divisor of n is any such natural number, that n can be divided by it without remainder.
Input
The first line contains two integers n and k (1 ≤ n ≤ 1015, 1 ≤ k ≤ 109).
Output
If n has less than k divisors, output -1.
Otherwise, output the k-th smallest divisor of n.
Examples
Input
4 2
Output
2
Input
5 3
Output
-1
Input
12 5
Output
6
Note
In the first example, number 4 has three divisors: 1, 2 and 4. The second one is 2.
In the second example, number 5 has only two divisors: 1 and 5. The third divisor doesn’t exist, so the answer is -1.
제목: 두 개의 숫자 n, k를 주고 첫 번째 숫자의 k번째 인수를 구한다. 만약 이 출력이 없다면 - 1蒟蒻의 블로거는 제목의 뜻을 잘못 보았다고 cf가 성공적으로 0이 되었는가
#include
#include
#define LL long long
int main()
{
LL n, k;
while(~scanf("%lld%lld",&n,&k)) {
LL x = sqrt(n);
bool flag = false;
LL ans_1 = 0, ans = 0;
for(LL i = 1;i <= x; i++) {
if(n%i == 0)
ans++;
if(ans == k) {
printf("%lld
",i);
flag = true;
break;
}
}
if(!flag){
if(x*x == n) {
ans = ans*2 - 1;
}
else {
ans = ans*2;
}
if(ans < k) {
printf("-1
");
flag = true;
}
}
if(!flag) {
ans = ans + 1 -k;
for (LL i = 1;i <= x; i++) {
if(n%i == 0) {
ans_1++;
if(ans_1 == ans) {
printf("%lld
",(LL)n/i);
break;
}
}
}
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AZ-900을 자택 수험으로 무료 취득한 이야기 (2020/10)에서 2일간(오전중에만)의 온라인 트레이닝을 받는 것으로 무료 바우처를 받을 수 있다(등록 메일에 온다) 때문에, 부터 Peason VUE でスケジュール 버튼을 눌러, 화면에 따라 예약해 합격합시다 . ※2020/1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.