算法训练 最大最小公倍数
时间限制:1.0s 内存限制:256.0MB
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。
此题关键是明确数的类型,long long
然后要区分n为偶数且能不能被3整除和n为奇数的情况分别对应的计算方法
#include<stdio.h>
int main(){
long long n, num; //一定要定义long long
scanf("%I64d",&n); //64位整形输入
if( n <= 2)
{
printf("%d\n",n);
}
else if(n % 2==1)
{
num= n * (n - 1) * (n - 2); //n为奇数的计算方法
printf("%I64d\n",num);
}
else
{
if( n % 3 == 0)
{
num = (n - 1) * (n - 2) * (n - 3) ; //n为偶数并且是3的倍数
}
else num = n * (n - 1) * (n - 3); //n为偶数但不是3的倍数
printf("%I64d",num);
}
return 0;
}