题目描述
度度熊请你找出两个数a,b,满足1 ≤ a, b ≤ n且lcm(a, b) - gcd(a, b)尽量大。输出最大的lcm(a, b) - gcd(a, b)。其中lcm(a, b)表示a和b的最小公倍数,gcd(a, b)表示a和b的最大公约数。
输入描述
一行一个数字n(2 ≤ n ≤ 10^9)
输出描述
一行一个数字表示最大的lcm(a, b) - gcd(a, b)
思路分析
要使lcm(a, b) - gcd(a, b)尽量大,应该让a和b的最小公倍数尽量大,a和b的最大公约数尽量小。当a、b分别取n -1 和 n时满足该条件:最小公倍数为两者乘积,最大公约数为1。
AC代码(C++)
#include<iostream>
using namespace std;
int main()
{
long long int n;
cin >> n;
cout << n * (n - 1) - 1;
return 0;
}