试题 算法训练 最大最小公倍数
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 10的6次方。
n=int(input())
if(n%3==0):
n-=1
if(n%2==0):
res=n*(n-1)*(n-3)
else:
res=n*(n-1)*(n-2)
print(res)
有一个测试点过不了,奇奇怪怪
思路是这篇文章的
但是一看数据规模,再照我的思路那必超时啊,这时候这篇文章拯救了我哈哈哈
#想了挺久的不舍得删,先留一留,留一留
'''
#n=int(input())
a=7
b=83
mul=a*b
memory1=[]
memory2=[]
#排列,顺序的,元素重复不要
#提取前两个数算最小公倍数,再用前两个算出来的最小公倍数跟第三数算
def gcd(a,b):# 两个数的乘积等于这两个数的最大公约数与最小公倍数的乘积
global c=1,memory1,memory2
memory1.append([a,b])
while c!=0:
c=a%b
a=b
b=c
memory2.append(a)
print(a,mul/a)
#这里可以使用自带的库math.gcd(),需要加头文件import math
if(ab in memory1):#判断a,b是否出现在memory1中,如果不在就执行gcd
memory1.index(ab)
else:
gcd(a,b)
'''