百度筆試算法題——定範圍的兩個數求最小公約數與最大公倍數最大差

題目描述
度度能請你找出兩個數a,b,滿足1≤a,b≤n且
lem(a,b) - gcd(a,b)儘量大。輸出最大的
lcm(a, b) - gcd(a, b).
其中lcm(a,b))表示(和b的的最小公倍數,gcd(a,b)!表示和b的最大公約數。

輸入描述: 一行一個數字n(2≤n≤109)。
輸出描述:一行一個數字表示最大的lem(a,b) - gcd(a,b)
示例:
輸入 5 輸出 19

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		long a =  in.nextInt();
		long val = a*(a-1) -gcd(a,a-1);
		System.out.println(val);
	}

	public static long  gcd(long a,long b){
		return b==0?a:gcd(b,a%b);
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章