Решение задачи k-й делитель с Codeforces

Без пояснения   Просмотров: 52


Даны два натуральных числа n и k. Найдите k-й в порядке возрастания делитель числа n, либо сообщите, что его не существует.

Делителем числа n является любое натуральное число, на которое число n делится без остатка.

Код

#include <bits/stdc++.h>

using namespace std;
long long n,k;
int main()
{
    cin>>n>>k;
    vector<long long> a;
    for (long long i=1;i<=sqrt(n);i++)
    {
        if (n%i==0){a.push_back(i);
        if (i!=sqrt(n))a.push_back(n/i);}
    }
    if (a.size()<k)cout<<-1;
    else{
    sort(a.begin(),a.end());
    cout<<a[k-1];
    }
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться