关于TLE
查看原帖
关于TLE
349906
封禁用户楼主2021/8/1 13:01

帮忙接具呗!第五个点T了,但时间复杂度应该 0(n)0(\sqrt{n})不会T啊

#include <vector>
#include <cmath>
using namespace std;

int main()
{
    #define int long long
    int n,k;
    vector<int>m;
    cin>>n>>k;
    for(int i=1;i*i<n;i++){
        if(n%i==0){m.push_back(i);}
    }
    int ss=m.size();
    if(k<ss){cout<<m[k-1];return 0;}
    if(k==ss+1&&sqrt(n)*sqrt(n)==n){cout<<sqrt(n);return 0;}
    if(sqrt(n)*sqrt(n)==n)k--;
    if(k>ss*2){cout<<-1;return 0;}


    cout<<n/m[k-ss-1];
    return 0;
}

2021/8/1 13:01
加载中...