(已修改)
gcd=1肯定是最差选择因为任何一个gcd大于1的值都要比gcd1的选择要优(gcd=1的最优也就是2*x-1),那么可以枚举x的所有因数,找到该最大因数的倍数小于x的情况,取所有情况的最大值即可
#include <bits/stdc++.h>
using namespace std;
#define int long long
int get(int x,int y){
小红有一个正整数x,他希望你找到一个满足1≤y<x的正整数y,使得:(x+y)×gcd(x,y) 的值尽可能大,请你帮他求出这个最大值吧。 gcd(x,y)表示x和y的最大公约数,例如:gcd(4,6)=2。
每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤103)代表数据组数,每组测试数据描述如下:
在一行上输入一个正整数x(2≤x≤109),表示小红询问的x。
对于每组测试数据,输出包含一行一个正整数,表示(x+y)×gcd(x,y)的最大值。
输入
3
3
6
5
输出
5
27
9