这一天,小Y、小D、小C正在愉快地玩耍。
小Y是个数学家,他一拍脑袋冒出了一个神奇的完全平方数 nn。
小D是个机灵鬼,很快从小Y嘴里套出了 nn 的值。然后在脑内把 nn 写成了 a×ba×b的形式。其中 a,ba,b都是正整数。
小C是个八卦狂,他发现小D从小Y那里获知了神奇的东西,于是死缠烂打追问小D。最后小D说道:“我可以告诉你正整数 gg 和 ll 的值,我保证 ab=gl=nab=gl=n 且 a,ba,b 都是 gg的倍数。但是 a,ba,b 我可不能告诉你。”
这可急坏了小C。他决定退而求其次,找出a+ba+b的最小值和最大值。请你帮帮他吧!
输入格式
第一行一个正整数 TT,表示有 TT 组询问。
接下来 TT 行每行两个正整数 g,lg,l 表示一组询问。
输出格式
对于每个询问输出一行两个正整数,分别表示 a+ba+b 的最小值与最大值。保证问题有解。
C/C++ 输入输出 long long 时请用 %lld
。C++ 可以直接使用 cin/cout 输入输出。
样例一
input
1 1 4
output
4 5
explanation
只有三组解:{a=1,b=4},{a=2,b=2},{a=4,b=1}{a=1,b=4},{a=2,b=2},{a=4,b=1}。
样例二
input
1 2 8
output
8 10
#include<cmath> #include<iostream> using namespace std; int main() { int T; long long g,l; cin>>T; while(T--) { cin>>g>>l; cout<<(long long)sqrt(l/g)*2*g<<' '<<g+l<<endl; } }