程序如下。思路:编写一个有返回值的函数,使用辗转相除法求两数最大公约数;再编写一个有返回值的函数根据公式(最小公倍数=两数之积除以两数的最大公约数)求两数最小公倍数。
#includeint main(){ int hcf(int,int); //函数声明 int lcd(int,int,int); //函数声明 int x,y; scanf("%d%d",&x,&y); //输入俩整数 puts("最大公约数:"); printf("%dn",hcf(x,y)); //调用函数并输出两数最大公约数 puts("最小公倍数:"); printf("%dn",lcd(x,y,hcf(x,y)));//调用函数并输出两数最小公倍数 return 0; } int hcf(int a,int b){ int max,min,c; //找出两数中的最大值,最小值 if(a>b) { max=a;min=b; } else{ max=b;min=a; } //辗转相除法 c=max%min; if(c!=0) { max=min; min=c; hcf(max,min); //递归调用 } else return(min); } int lcd(int a,int b,int hcf){ return (a*b/hcf); }



