求帮助,帮看看这个怎么编
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
我这样编有错吗
#include<stdio.h>
long zy(long a,long b);
int main(){
long n,t,k,i;
scanf("%ld",&n);
if((zy(n-2,n)==1))
printf("%d",(n-2)*(n-1)*n);
else{
t=zy(n-2,n);
k=(n-2)*n;
i=n-3;
if((i*n)>(k/t)){
printf("%ld",i*(n-1)*n);
}
else
printf("%ld",(n-2)*(n-1)*n);
}
return 0;
}
long zy(long a,long b){
long i;
for(i=a;i>=1;i--){
if(((a%i)==0)&&((b%i)==0)){
return i;
break;
}
}
}