编程求最大公约数和最小公倍数,在主函数中输入数据,子函数完成功能。

来源:百度知道 编辑:UC知道 时间:2024/05/10 22:24:23
用C语言写

那我写子函数就行呗。
最大公约数
int maxGongYueShu(int n1,int n2)
{
//把大数放在n1里面,小数放在n2里面
if(n2>n1){int temp=n2;n2=n1;n1=temp;}
while(n2!=0){
n1=n2>n1?n1:n2;
int m=n1%n2;
n1=n2;
n2=m;
}
return n1;
}
最小公倍数
知道了最大公约数,就可以很快的算出最小公倍数。比如12和9的最大公约数是3,那么最小公倍数就是12*9/3=36。所以
int minGongBeiShu(int n1,int n2)
{
int Ji=n1*n2;
return Ji/maxGongYueShu(n1,n2);
}

int gcd( int v1, int v2 )
{
// 返回最大公约数
while ( v2 )
{
int temp = v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}
int lm(int a, int b) //返回最小公倍数
{
return a*b/gcd(a, b);
}

int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("最大公约数: %d\n", gcd(a, b));
printf("最小公倍数:%d\n", lm(a, b));
return 0;
}