数论之神

题解:除法分块。
如果是牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_分块的话第牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_分块_02大的数值就是牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_#include_03,否则就是牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_分块_04对应的牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_CCPC_CAMP_05减掉牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_分块_02超过牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_牛客国庆集训派对day5_07的部分然后在加上牛客国庆集训派对Day5 L数论之神(CCPC_CAMP)除法分块_牛客国庆集训派对day5_08

代码

#include<bits/stdc++.h>

int main()
{
int T;
scanf("%d", &T);
while (T--)
{
long long n, k;
scanf("%lld%lld", &n, &k);
long long t = sqrt(n);
long long x, y;
if (t * (t + 1) <= n)
x = t * 2;
else
x = t * 2 - 1;
k = x - k + 1;
if (k <= t)
y = k;
else
y = n / (x - k + 1);
printf("%lld %lld\n", x, y);
}
return 0;
}