C++ 求两个数的最小公倍数的程序

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:16:15

采用辗转相除法

#include <stdio.h>

void main()
{
int x,y,a,b;
printf("please input two num x,y : ");
scanf("%d,%d",&x,&y);
for(a=x<y?x:y,b=x>y?x:y;a>0;t=b,b=a,a=t%a)
if(b%a==0)
{
printf("%d,%d的最大公约数是 %d\n",x,y,a);
break;
}
printf("%d,%d的最小公倍数是 %d\n",x,y,x*y/a);
}

ytaofighting的对于大数字不适用

main() /*主程序开始*/
{
int aa,bb,a,b,c,t;
printf(“请输入要求最大公约数和最小公倍数的两个整数:\n”);
scanf(“%d %d”,&a,&b);
aa=a;
bb=b;
if(a<b)
{
t=a;
a=b;
b=t;
}
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf(“这两个数的最大公约数为:%d\n”,b);
printf(“这两个数的最小公倍数为:%d\n”,aa*bb/b);
}

// 先求最大公约数,再得最小公倍数

int gcd(int a, int b)// greatest common divisor,最大公约数
{
if ( a == 1 || b == 1)