1. 程式人生 > >牛客國慶集訓派對Day5——L 數論之神(數論)

牛客國慶集訓派對Day5——L 數論之神(數論)

終於活成了自己討厭的樣子。

這是她們都還沒長大的時候發生的故事。那個時候,栗子米也不需要為了所謂的愛情苦惱。
她們可以在夏日的午後,花大把的時間去研究生活中一些瑣碎而有趣的事情,比如數論。
有一天西柚柚問了栗子米一個題,她想知道中有多少不同的數,這些不同的數字裡面第k大的是多少

證明

#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #define se second #define SZ(x) ((int)(x).size()) typedef vector<int> VI; typedef long long ll; typedef pair<int,int> PII; const ll mod=1000000007; ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=
1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;} //head int T; ll n,k; int main(int argc, char const *argv[]) { cin>>T; while(T--) { cin>>n>>k; ll ans,sum; ans = (ll)sqrt(n); if(ans*(ans+1) <=
n) sum = 2 * ans; else sum = 2 * ans -1; k = sum - k + 1; if(k <= ans) k = k; else k = n/(sum-k+1); cout<<sum<<" "<<k<<endl; } return 0; }