C语言用for循环求最大公约数,C语言循环结构 -C语言求最大公约数
这是一个C语言 while 循环示例:求正整数 m 和 n 的最大公约数。
问题分析
输入:两个正整数。
输出:一个正整数(最大公约数)。
最大公约数(gcd)是指几个数共有的因数之中最大的一个数,比如 8 和 12 的最大公约数是 4,一般记作 gcd(8,12)=4。
求两个正整数的最大公约数可以使用辗转相除法。辗转相除法是公元前 300 年左右的希腊数学家欧几里得在他的著作《几何原本》中提出的,利用这个方法可以较快地求出两个自然数的最大公约数。
辗转相除法求两个正整数的最大公约数的具体步骤:用较大的数除以较小的数,如果余数不为 0,则将余数和较小的数(除数)构成一对新数,继续用其中较大的数除以较小的数,这样反复进行上面的除法,直到大数被小数除尽(余数为 0),这时较小的数就是原来两个数的最大公约数(见图 1)。
图 1:辗转相除法求两个正整数的最大公约数
算法描述
代码清单 2:求正整数 m 和 n 的最大公约数
#include
#include
int main( )
{
int m,n,r;
printf("输入两个正整数(空格分隔):\n");
scanf("%d %d",&m,&n);
r = m % n; //r取m除以n的余数
while(r != 0) //辗转相除
{
m = n; //小数给m
n = r; //余数给n
r = m % n; //r再次取m除以n的余数
}
printf("最大公约数是%d\n",n);
system("pause");
return 0;
}
运行结果:
输入两个正整数(空格分隔):
56 72
最大公约数是8
知识点总结
辗转相除法求最大公约数:始终用较大的数除以较小的数,直至除尽。
C语言用for循环求最大公约数,C语言循环结构 -C语言求最大公约数相关推荐
- c语言gcb最小公倍数,C编序编程题目:输入两个正整数m和n,求其最大公约数和最小公倍...,C语言编程,输入两个正整数M和N(MN),计算M和N...
问题标题 C编序编程题目:输入两个正整数m和n,求其最大公约数和最小公倍...,C语言编程,输入两个正整数M和N(M 2019-3-27来自ip:15.121.164.188的网友咨询 浏览量:228 ...
- C语言编程>第一周 ⑧ 输入两个正整数m和n,求其最大公约数和最小公倍数。
例题:输入两个正整数m和n,求其最大公约数和最小公倍数. 代码如下: /*程序分析:利用辗除法.*/ #include"stdio.h" main() {int a,b,num1, ...
- 用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数
a=g_cd(m,n); if (m>n) //最小公倍数=较大的数*(较小的数/最大公约数) { b=n; b/=a; return m*b; } else { b=m; b/=a; retu ...
- c语言辗转相除法素数,C|模数、素数,辗转相除法的证明及求最大公约数和最小公倍数...
1 模数 "模"是指一个计量系统的计数范围.如时钟等.计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个"模".例如: 时钟的计量范围是0-11,模 ...
- c语言输入若干数输出最小值循环结构,C语言上机150道题
C语言上机150道题及参考答案 1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分. 2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位.例如输入 ...
- C语言详解系列——goto语句的讲解和循环语句的简单练习题
文章目录 goto语句 一些简单的练习题 打印三的倍数 从大到小输入 打印素数 最大公约数 打印闰年 goto语句 顾名思义goto语句就是去到任何我们想去的语句,当我们写了很长的一段代码时,我们想要 ...
- PTA 基础编程题目集 7-16 求符合给定条件的整数集 C语言
PTA 基础编程题目集 7-16 求符合给定条件的整数集 C语言 给定不超过6的正整数A,考虑从A开始的连续4个数字.请输出所有由它们组成的无重复数字的3位数. 输入格式: 输入在一行中给出A. 输出 ...
- c语言循环设计思想结构,C语言程序设计_05循环结构程序设计讲述.pptx
C语言程序设计_05循环结构程序设计讲述 第5章 循环结构程序设计5.1 while循环结构5.2 do-while循环结构5.3 for循环结构5.4 与循环有关的控制语句5.5 3种循环语句的比较 ...
- c语言第六章条件型循环结构,C语言课件(第六章 循环结构)
C语言课件 第六章 循环结构 在许多复杂的问题中,常常需要做大量的类似的计算处理,这些类似的相同的处理过程存在重复性过程,即在某种条件成立的情况下需要处理相同的操作时,就要使用循环结构来完成. 类似于 ...
最新文章
- 快速构建深度学习图像数据集,微软Bing和Google哪个更好用?
- Python学习全家桶,Python初学者十一个热门问题
- linux c 中 当前函数名 文件名 可变参 不定参 宏使用
- 2010 求后序遍历
- 一天学完spark的Scala基础语法教程十、类和对象(idea版本)
- pku acm 2140 Herd Sums http://acm.pku.edu.cn/JudgeOnline/problem?id=2140
- 枚举enum、NS_ENUM 、NS_OPTIONS
- 微型计算机主机箱内的所有部件均由,计算机应用基础模拟题
- [No000089]String的(补空位)左对齐,(补空位)右对齐
- 【印刷字符识别】基于matlab模板匹配英文字母识别【含Matlab源码 808期】
- 工控安全| 西门子S7-300攻击分析
- SubSonic使用技巧
- python PIL Image 图像处理基本操作
- 全国高级项目经理人数知多少?(数据统计截止2013年6月22日)
- B.系数 (Lucas定理)
- 关于Java中的引用的用法
- 如何用计算机测试交易系统,一种自动售票机交易功能的测试系统和方法与流程...
- 癫狂的dom——利用css3让dom动起来
- python基础论文_Python基础 - 文章分类 - rwwh - 博客园
- 浅谈傅里叶——8. 一维iDFT的实现
热门文章
- c语言中怎么用scanf给二维数组赋值,关于VC++6.0无法用scanf()输入浮点值赋给二维数组的问题...
- java输出中写html标签,java 输出html标签
- 一个老程序员的一些职场经验分享
- Windows编程 从消息窗口到基本窗口 游戏循环窗口框架的简单实现
- 数字化技术成为门店的重要推手?
- matlab有限元法求解转子固有频率,多支承转子系统辛空间传递矩阵法及应用
- linux图形界面bind dns,在linux上使用BIND建立DNS服务器
- vi 撤销上一步操作
- 新版华为P30,这5个新功能C位出道,3988值得拥有
- Linux---基础部分