用c语言求两个数的最大公约数和最小公倍数
实现方法
假设两数为a和b,使两数摸除,若余数为0,则被除的数为最大公约数。
最小公倍数则是两数相乘除以最大公约数。
方法一:
#include<stdio.h>
int main(){
int a=0,b=0,r=0;
scanf("%d,%d",&a,&b);
for(r=a; ;r--){
if(a%r==0&&b%r==0)
break;
}
printf("最大公约数为%d,最小公倍数为%d",r,(a*b)/r);
return 0;
}
方法二:辗转相除法
#include<stdio.h>
int main(){
int a=0,b=0,t=0,x=0;
scanf("%d,%d",&a,&b);
x=a*b;
while(t=a%b){
a=b;
b=t;
}
printf("最大公约数为%d,最小公倍数为%d",b,x/b);
return 0;
}