问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
代码实现:
while True:
try:
n = int(input())
if n <= 2:
print(n)
elif(n % 2 != 0):
print(n * (n-1) * (n-2))
else:
if n % 3 == 0:
print((n-1)*(n-2)*(n-3))
else:
print(n*(n-1)*(n-3))
except:
break
总结:
算是对最小公倍数在代码上的操作有了更深的理解把,
奇偶奇:这三个数相邻是肯定没有公因子的,n(n-1)(n-2):比如765,543,321等等
偶奇偶:这一种如果是n(n-1)(n-2)的时候,比如654的时候,是会在n和n-2中产生公因子2的,要保证最大就得三个直接相乘才最大,因此将n-2延到n-3,变成n(n-1)(n-3)这下就变成653,会产生公因子3,如果产生了公因子3,那么只能将整体延后一个才能保证最大此刻(n-1)(n-2)(n-3)变成奇偶奇的类型
题外话:针对最小公倍数的题,列举几个具体的数比较容易看出规律