用辗转相除法求两个数的最大公约数,用C++写一个小程序

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:24:46

求最小公倍数的方法:两数相乘除以最小公倍数

求最大公约数的方法:两个数求最大公约数,可以用辗转相除法。始终用较大数除以较小数,然后用余数代替较大数。整除时的除数就是最大公约数。
#include "stdio.h"
void main()
{
int a,b,num1,num2,temp;
printf("Please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)
{
temp = num1;
num1 = num2;
num2 = temp;
}
a = num1;
b = num2;
while(b!=0)
{
temp = a%b; //取模,即取余数
a=b;
b=temp;
}
printf("最大公约数为:%d\n",a);
printf("最小公倍数为:%d\n",num1*num2/a);
}

直接给你个函数,返回最大公约数,很简单

int gcd( int v1, int v2 )
{
while ( v2 )
{
int temp = v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}