百度笔试算法题——定范围的两个数求最小公约数与最大公倍数最大差

题目描述
度度能请你找出两个数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);
	}
}

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