小塔有一个正整数x,他希望你找到一个满足1≤y<x的正整数y,使得:(x+y)×gcd(x,y) 的值尽可能大,请你帮他求出这个最大值吧。 gcd(x,y)表示x和y的最大公约数,例如:gcd(4,6)=2。
(已修改)
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){