程序如下。思路:编写一个有返回值的函数,使用辗转相除法求两数最大公约数;再编写一个有返回值的函数根据公式(最小公倍数=两数之积除以两数的最大公约数)求两数最小公倍数。
#include<stdio.h>
int main(){
int hcf(int,int); //函数声明
int lcd(int,int,int); //函数声明
int x,y;
scanf("%d%d",&x,&y); //输入俩整数
puts("最大公约数:");
printf("%d\n",hcf(x,y)); //调用函数并输出两数最大公约数
puts("最小公倍数:");
printf("%d\n",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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82666.html