[数学] aw3783. 第 k 个除数(求约数+CF762A)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[数学] aw3783. 第 k 个除数(求约数+CF762A)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:3783. 第 k 个除数

2. 题目解析

求所有约数,排序,输出即可。


时间复杂度: O ( n l o g n ) O(\\sqrt n log\\sqrt n) O(n logn )

空间复杂度: O ( n ) O(\\sqrt n) O(n )


#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

int main() {
    LL n, k;
    cin >> n >> k;
    
    vector<LL> q;
    for (LL i = 1; i <= n / i; i ++ ) {
        if (n % i == 0) {
            q.push_back(i);
            if (n / i != i) q.push_back(n / i);
        }
    }
    
    sort(q.begin(), q.end());

    if (k > q.size()) cout << -1 << endl;
    else cout << q[k - 1] << endl;
    
    return 0;
}

以上是关于[数学] aw3783. 第 k 个除数(求约数+CF762A)的主要内容,如果未能解决你的问题,请参考以下文章

2021暑假每日一题 week4 完结

p4714 「数学」约数个数和

第k大公约数(简单数学,逻辑转换)

求两个数的最大公约数和最小公倍数 C语言

codeforces 711E 数学

规律题-----求给定范围内约数的个数 wannafly2017-12-15 A