分解一个整数,使它们的最小公倍数最大

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:07:19
怎么分啊?
谢谢!
分解为多个整数之和

楼下的看不懂啊...
你是分解成什么的程序啊?

题目不明确,试作修改:
1.对任意整数N(N>=4),分解成两个整数之和,即N=A+B,(A>0,B>0)使得A,B的最小公倍数最大.
2.对任意整数N(N>=4),分解成两个整数之积,即N=A*B,(A>0,B>0)使得A,B的最小公倍数最大.
3.对任意整数N(N>=4),分解成m个整数之和,即N=n1+n2+n3+...+nm,(ni>0)使得(n1,n2,..nm)的最小公倍数最大.
4.对任意整数N(N>=4),分解成m个整数之积,即N=n1*n2*n3*...*nm,(ni>0)使得(n1,n2,..nm)的最小公倍数最大.

下面的程序分解成 N = A + B 使A,B最小公倍数最大
--------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

int gcd(int a, int b);
int lcm(int a, int b);

int main(int argc, char**argv)
{
int N,a,b,i,tmp;
int max=0;
if (argc != 2)
{
printf("Usage: %s -N(>0) \n", argv[0]);
return 0;
}

N = atoi(argv[1]);

for(i=1;i<=N/2;i++)
{
tmp = lcm(i, N-i);

if(tmp > max)
{
max = tmp;
a = i;
b = N-i;
}
}

printf("%d = %