1.首先了解一下什么是辗转相除法

将两个整数值作为长方形的边长。用短边为边长的正方形来填充长方形,对剩余部分持相同操作,直到填满为止,填充过程中最小的正方形边长就是两个整数值的最大公约数。

2.思路

前边提到该方法首先是以最短边为正方形填充,那我们先要分别长短边,判断短边是否为最大公因数,是的话就结束,不是的话就找下一个短边,如上图中寻找长度为2的边,就是上一个长边短边之差,或者相磨。找到以后会有新的长短边,重复开始时的过程,这里用到了递归解决。

3.程序

#include<stdio.h>
int gcd(int x, int y)
{
    int max;
    int min;
    int ret;
    if (x > y)
    {
        max = x; 
        min = y;
    }
    else
    {
        max = y;
        min = x;
    }
    if (max % min == 0)
        return min;
    ret = max % min;
    if (x % ret == 0 && y % ret == 0)
        return ret;
    else
        return gcd(ret, min);
}
int main()
{
    int x;
    int y;
    printf("输入两个数,求最大公因数"); scanf("%d %d", &x, &y);
    printf("%d", gcd(x, y));
    return 0;
}

在C语言中用辗转相除法求两个整数值的最大公约数相关推荐

  1. C语言学习之求两个整数的最大值

    C语言学习之求两个整数的最大值 #include <stdio.h> int main(){int a,b,c;//定义变量int max(int x,int y);//调用函数max的声 ...

  2. 用计算机计算最大公因数,利用计算器求两个较大数的最大公约数的简便方法

    !塑!垒三塑圭 ke.xuejiaoyujia 数学教育研究 利用计算器求两个较大数的最大公约数的简便方法 胡苏琦 (中山一中广东中山528400) 在高一数学必修A3课本中这一章介绍了如何求两 个较 ...

  3. C++15. 求两组整数集的“或”集

    求两组整数集的"或"集(cexam3b.c) [问题描述]从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,每个整数只出现一次(重复整数只保留一 ...

  4. 【C语言练习】求两个数m和n的最大公约数(辗转相除法)

    求两个数m和n的最大公约数 一.编程思路 1.首先,题目里是两个数,我们自然而然要想到定义两个变量: 2.其次,我们的目的是寻找最大公约数,所以要搞清楚其概念:两个或多个整数共有约数中最大的一个 3. ...

  5. C语言辗转相除法求两数最大公因数

    #include <stdio.h> int main() {int m = 180; /*假设需要求出180int n = 25; 和25的最大公因数*/int r = 0; //中间数 ...

  6. 用c语言编写两个数的最小公倍数,用C语言编写程序求两个数的最小公倍数,并输出...

    如图使用辗转相除法求最小公倍数: 方法步骤: 一.打开VC2010(或其他C语言编译器),新建项目-选择Win32为控制台应用程序-命名-确定 二.选择源文件-添加-新建项 三.选择C++文件-命名. ...

  7. python求两数最大公因数_使用辗转相除法求两个数的最大公因数(python实现)

    数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...

  8. python辗转相除_使用辗转相除法求两个数的最大公因数(python实现)

    数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...

  9. 【C语言】实现求两个数的最大公约数【四种算法】

    题目 给定两个数,求这两个数的最大公约数 例如: 输入:20 40 输出:20 解题思路 最大公约数:即两个数据中公共约数的最大者 求解的方式比较多,暴力穷举.辗转相除法.更相减损法.Stein算法算 ...

  10. 辗转相除法(求两个非负整数的最大公约数)(拓展:求n个非负整数的最大公约数)

    求两个非负整数的最大公约数 int main() {int m, n;scanf("%d %d", &m, &n);int k = 0;while (k = m%n ...

最新文章

  1. Linux操作系统(一:基本操作)
  2. 可以获取python整数类型帮助的是什么-python数据类型一(重点是字符串的各种操作)...
  3. 决策树人工智能预测模型_部署和服务AI模型进行预测的10种方法
  4. android使用遥控器模拟鼠标拖拽操作
  5. 大数据行业现在工作好不好找?很难吗?
  6. 如何利用DW快速编写一个简单网页
  7. Boost Serialization 库
  8. JAVA音程_大三度和小三度
  9. Unity http协议连接封装简易版(已测试可用)
  10. 2022-03-13-Redis
  11. 互联网IT 校招与内推:软实力的技巧
  12. 数字加密和解密(Java)
  13. Leads、SDR、MQL、SQL、L2C术语概念,线索创建与清洗、线索分级模型、线索流转策略、线索的统计与分析
  14. C++ std map unordered_map hash_map 的查找性能测试代码及结果
  15. 4123版驱动最新支持《霍格沃茨之遗》,英特尔锐炫显卡带你畅游魔法世界
  16. 两军交战在即,我却还在等妹纸脱衣服?!
  17. saber软件安装后怎么打开_Saber中文使用教程之软件仿真流程
  18. 门禁上的push是什么意思_门禁的NC、NO、COM、PUSH等一系列符号的含义是什么?
  19. 二等水准数据平差_二等水准测量操作及数据处理ppt.ppt
  20. 树莓派玩linux安装qq,树莓派怎么安装QQ

热门文章

  1. 查找pod运行在哪个主机上_在共享主机包中查找什么
  2. hdu1010—我的惯性思维
  3. day9-字符串练习
  4. 字符串里求数字个数以及提出累加和
  5. [原生js] 前端开发必须掌握的七个JavaScript技巧
  6. 从现在到2022年,新应用程序驱动的电子纸显示器的CAGR为13.6%---凯利讯半导体
  7. 再次坚信iteye能够发展壮大
  8. python barplot 比例bili scanpy
  9. 《Java程序性能优化》subString()方法的内存泄露
  10. 吉顺如陶恂c语言课后答案,c程序设计教程与实验 实验六 吉顺如