写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.(两个整数由键盘输入)

#include <stdio.h>
/*
 * 主函数:计算并打印两个数的最大公约数和最小公倍数
 */
int main(){
    // 定义计算最大公约数和最小公倍数的函数
    int hcf(int,int);
    int lcd(int,int,int);
    int u,v,h,l; // u,v为输入的两个数,h为最大公约数,l为最小公倍数
    printf("Please enter two numbers:");
    scanf("%d,%d",&u,&v); // 输入两个数
    h= hcf(u,v); // 计算最大公约数
    printf("最大公约数=%d\n",h); // 打印最大公约数
    l=lcd(u,v,h); // 计算最小公倍数
    printf("最小公倍数=%d\n",l); // 打印最小公倍数
}

/*
 * 计算两个数的最大公约数(欧几里得算法)
 * 参数:u, v - 两个待求最大公约数的整数
 * 返回值:u和v的最大公约数
 */
int hcf(int u,int v){
    int t,r;
    if(v>u){ // 交换u和v,确保u总是大于等于v
        t=u;
        u=v;
        v=t;
    }
    while((r=u%v)!=0){ // 当u除以v的余数不为0时,继续循环
        u=v;
        v=r; // 更新u和v,将v赋值为余数r,u赋值为原来的v
    }
    return v; // 循环结束后,v即为最大公约数
}

/*
 * 计算两个数的最小公倍数
 * 参数:u, v - 两个整数;h - u和v的最大公约数
 * 返回值:u和v的最小公倍数
 */
int lcd(int u,int v,int h){
    return (u*v)/h; // 最小公倍数等于两数之积除以它们的最大公约数
}
 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值