sdnu1464.最大最小公倍数 (数学)
Description
问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
Input
输入一个正整数 N(1<=N<=10^6)
Output
输出一个整数,表示你找到的最小公倍数
Sample Input
9
Sample Output
504
求最小公倍数的最大值,使3个数尽量互质,并且尽量大,得到的就是最大的最小公倍数
从n开始向前找,
当n是奇数时,n n-1 n-2三个数互质,所以n*(n-1)*(n-2)就是答案
当n是偶数时,若n是3的倍数,则n-1 n-2 n-3三个数互质,最大的最小公倍数为(n-1)(n-2)(n-3)
若n不是3的倍数,则n n-1 n-3三个数互质,最大的最小公倍数为n*(n-1)*(n-3)
while True:
try:
n=int(input())
if n <= 2:
print(n)
else:
if n % 2 == 1:
print(n*(n-1)*(n-2))
else:
if n % 3 != 0:
print(n*(n-1)*(n-3))
else:
print((n-1)*(n-2)*(n-3))
except:
break