百度2020春季實習生筆試——最小公倍數與最大公約數

題目描述

度度熊請你找出兩個數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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章