3248:最大公约数
总时间限制: 1000ms 内存限制: 65536kB
描述
给定两个正整数,求它们的最大公约数。
输入
有多组数据,每行为两个正整数,且不超过int可以表示的范围。
输出
行对应输出最大公约数。
样例输入
4 8
8 6
200 300
样例输出
4
2
100
提示
系统的测试文件中数据有很多组,因此同学们在程序里要写循环读取数据并判断是否读完文件的代码。
如果不知道如何处理,可以参考下面的两个模板:
C++这样写:

while(cin>>x>>y)
{
求x和y最大公约数的代码
}

C这样写:

while(scanf(%x %y",&x,&y)!=EOF)
{
求x和y最大公约数的代码
}

问题链接:Bailian3248 最大公约数
问题简述:(略)
问题分析
  按Markdown格式重写了题解,旧版题解参见参考链接。
  欧几里得算法又称辗转相除法,用于计算两个非负整数a,b的最大公约数。可以编写一个函数,将欧几里得算法封装在函数中供调用。
解法一:递归函数实现欧几里得算法
  编写一个递归函数实现欧几里得算法。
  递归法程序需要付出参数传递和值返回的代价,空间上和时间上需要付出一定代价,速度上略慢。但是,因为是取余数运算,递归函数调用次数一般不会太多,还是可以接受。递归函数的优点在于程序代码简洁。
解法二:非递归函数实现欧几里得算法
  编写一个非递归函数,递推(迭代)实现欧几里得算法。非递归的优点在于计算速度快,但是程序代码略微复杂一点。
解法三:调用C++函数
  调用C++函数计算最大公约数。一般编程中,推荐直接调用C++函数的函数__gcd(),需要包含头文件“algorithm”。
程序说明:(略)
参考链接:Bailian3248 最大公约数【数论】
题记:(略)

AC的C语言程序(解法一:递归函数实现欧几里得算法)如下:

/* Bailian3248 最大公约数 */#include <stdio.h>int gcd(int m, int n)
{return n ? gcd(n, m % n) : m;
}int main(void)
{int a, b;while(~scanf("%d%d", &a, &b))printf("%d\n", gcd(a, b));return 0;
}

AC的C语言程序(解法二:非递归函数实现欧几里得算法)如下:

/* Bailian3248 最大公约数 */#include <stdio.h>int gcd(int m, int n)
{int r;while (n) r = m % n, m = n, n = r;return m;
}int main(void)
{int a, b;while(~scanf("%d%d", &a, &b))printf("%d\n", gcd(a, b));return 0;
}

AC的C++语言程序(解法三:调用C++函数)如下:

/* Bailian3248 最大公约数 */#include <iostream>
#include <algorithm>
#include <cstdio>using namespace std;int main()
{int a, b;while(~scanf("%d%d", &a, &b))printf("%d\n", __gcd(a, b));return 0;
}

Bailian3248 最大公约数【数论】相关推荐

  1. 程序设计入门经典题解(百练篇)

    参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...

  2. 【解题报告】2021牛客寒假算法基础集训营4

    [解题报告]2021牛客寒假算法基础集训营4 前面的话 A :九峰与签到题 | 模拟 (签到题) B: 武辰延的字符串 | exKMP D :温澈滢的狗狗 | 二分 E: 九峰与子序列 | d p d ...

  3. 算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)

    文章目录 acwing869. 试除法求约数 acwing870. 约数个数 acwing871. 约数之和 acwing872. 最大公约数 acwing869. 试除法求约数 acwing869. ...

  4. 【数论Day1】 最大公约数(gcd)题目

    20170529-3数论_gcd 题解: http://www.cnblogs.com/ljc20020730/p/6919116.html 日期 序号 题目名称 输入文件名 输出文件名 时限 内存 ...

  5. 第十二单元 数论算法12.1 同余的性质12.2 最大公约数、最小公倍数

    第十二单元 数论算法 12.1 同余的性质! 注意下面三个式子,它可以保证在计算中不会发生溢出.  (a+b) mod m=(a mod m+b mod m) mod m  (a-b) mod m ...

  6. 数论相关_最大公约数最小公倍数

    文章目录 最大公约数 Greatest Common Divisor 多个数的最大公约数 最小公倍数 Least Common Multiple 多个数的最小公倍数 Tag 最大公约数 Greates ...

  7. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

  8. 数论 --- 约数和定理公式推导、最大公约数、欧几里得算法

    试除法求约数 和<试除法判断一个数是不是质数>是一个道理 从小到大枚举所有的约数,如果当前数能整除这个数的话,说明这个数就是当前数的约数 优化,与<试除法判断质数>是一样的 如 ...

  9. 数论 - 约数基础 【 试除法求所有约数 + 约数个数和约数之和 + 欧几里得算法-求解最大公约数 】

    数论-约数基础 1.约数定义 约数,又称因数.整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a.a称为b的倍数,b称为a的约数.在大学之前,"约数 ...

最新文章

  1. is not a supported wheel on this platform pip安装报错
  2. 汇编语言 利用and运算 将字符串中的某个字母变成大写
  3. 让您的电脑在任意目录可以支持图片的粘贴,试试看呗(第二篇)~
  4. 有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文
  5. jhipster_JHipster入门,第3部分
  6. 关于异地高考引发的又一次舆论攻势
  7. python 把xml中含有特殊字段的部分提取出来_Python: 爬虫网页解析工具lxml.html(一)...
  8. LeetCode : Word Pattern
  9. eclipse中使用Lombok(转)
  10. [转]python进阶到高阶大全
  11. python第四周测试答案_Python程序开发第四周作业
  12. Java反射机制的简单应用
  13. 15 款MacBook Pro扩容之旅
  14. 团队任务:第二次冲刺
  15. 利用阿里云如何开发一款直播app?
  16. matlab 根据长轴,短轴,中心坐标画椭圆
  17. 佳能打印机手机显示未连接服务器失败,佳能打印机连不上手机
  18. Mac电脑的自动切换输入法
  19. 记录一次 torch.cuda.is_available()==false的问题解决过程
  20. 为什么一流成功人士的闹钟都定在早晨5:57

热门文章

  1. linux中pstree命令的含义,pstree命令--Linux命令应用大词典729个命令解读
  2. JavaWeb——拦截器HandlerInterceptor
  3. 苹果本Win10双系统开启CPU虚拟化
  4. PHP通过字符串调用函数
  5. android顶部居中,如何将drawableLeft对齐到顶部,而不是在android TextView中居中?
  6. 教师空间中html是指什么,教师空间个性签名
  7. 如何将html转为report,如何把Html5 Report Viewer添加到Web项目
  8. 每天Leetcode 刷题 初级算法篇-位1的个数
  9. js判断html存不存在某个属性,javascript如何判断对象是否存在某属性?
  10. mysql隔离性和线性隔离_MySQL--事务,隔离性和隔离级别