-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdif_gcd.cpp
More file actions
41 lines (40 loc) · 1011 Bytes
/
dif_gcd.cpp
File metadata and controls
41 lines (40 loc) · 1011 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
#define ln long long
using namespace std;
int main()
{
// your code goes here
int num;
cin >> num;
while (num--)
{
ln num1, num2, k, flag1, flag2, post;
cin >> num1 >> num2;
if (num2 < 2 * num1)
cout << num2 << " " << num2
<< "\n";
else if (num2 >= 2 * num1 && num2 % num1 == 0)
cout << num2 << " " << num1
<< "\n";
else
{
post = num2 / 2;
if (num2 >= 2 * num1)
post = 2 * num1;
int mini = INT_MIN;
for (k = num1; k <= post; k++)
{
ln d = num2 / k;
ln currdiff = (k * d) - k;
if (currdiff > mini)
{
flag1 = k;
flag2 = (k * d);
mini = currdiff;
}
}
cout << flag1 << " " << flag2 << "\n";
}
}
return 0;
}