6和8的最大公约数是2,最小公倍数是24。
最大公约数求法:
反复用大数减小数,直到相等为止。
while(x!=y)
{
if(x>y)x=x-y;
else y=y-x;
}
最小公倍数求法:
x*y/(gcd(x,y))
输入数据只包含两个整数。
输出这两个整数的最大公约数和最小公倍数。输出完成后,不要换行回车。
例如:
输入结果
6 8
2 24
6和8的最大公约数是2,最小公倍数是24。
最大公约数求法:
反复用大数减小数,直到相等为止。
while(x!=y)
{
if(x>y)x=x-y;
else y=y-x;
}
最小公倍数求法:
x*y/(gcd(x,y))
输入数据只包含两个整数。
输出这两个整数的最大公约数和最小公倍数。输出完成后,不要换行回车。
例如:
输入结果
6 8
2 24
#include <stdio.h>
int gcd(int x,int y){
while(x!=y)
{
if(x>y)x=x-y;
else y=y-x;
}
return x;
}
int main()
{
int x,y;
scanf("%d %d",&x,&y);
if(x<=0||y<=0){
return 0;
}
int min = gcd(x,y);
int max = x*y/min;
printf("%d\n%d",min,max);
return 0;
}