SYDZ 辗转相除法的原理与实现
辗转相除法又叫欧几里得辗转相除法,最早出现在公元前300年古希腊著名数学家欧几里得的《几何原本》》(第VII卷,命题i和ii)中。而在中国则可以追溯至东汉出现的《九章算术》。而在现代数学中,这应该是属于数论的部分的。
要想解释辗转相除法的原理,需要先知道以下两点:
一、一个一般定理:
如果a是任一整数而b是任一大于零的整数,则我们总能找到一整数q,使
a=bq+r
这里r是满足不等式0<=r<b的一个整数。
二、最大公因子的表示方法:
如果整数a和b的最大公因子是d,则表示为d=(a,b) (不知道现在教科书上是怎么表示的)
给定a和b(a>=b)两个整数,求最大公因子d。
根据上边给的定理,可以将a写成
a=bq+r
辗转相除法是告诉我们
(a,b)=(b,r)
即a和b的最大公因数和b和r(r是a除以b的余数)的最大公因数是相等的。
原理:因为对任意同时整除a和b的数u,有
a=su,b=tu,
它也能整除r,因为r=a-bq=su-qtu=(s-qt)u。
反过来每一个整除b和r的整数v,有
b=s'v , r=t'v
它也能整除a,因为a=bq+r=s'vq+t'v=(s'q+t')v.
因此a和b的每一个公因子同时也是b和r的一个公因子,反之亦然。这样由于a和b的全体公因子集合与b和r的全体公因子集合相同,所以a和b的最大公因子必须等于b和r的最大公因子,这就证明了上边的等式。即(a,b)=(b,r)。
#include<stdio.h>void main(){int num1 = 0;int num2 = 0;scanf("%d,%d", &num1,&num2);int min = num1 < num2 ? num1 : num2;int max = num1 > num2 ? num1 : num2;int i = max % min;int sum = max * min;while (i != 0) {min = min % i;i = i % min;}printf("最大公约数是%d", min);printf("最小公倍数是%d", sum/min);}
SYDZ 辗转相除法的原理与实现相关推荐
- 算法:欧几里得辗转相除法的原理
目录 辗转相除法的原理 更相减损术(辗转相减法) 算法实现 求最小公倍数 辗转相除法的原理 辗转相除法具体是谁提出的也难以考证,但是这个算法最早出现在古希腊数学家欧几里得的著作-----<几何原 ...
- 辗转相除法的原理,一看就懂,一学就会
看了一些解释,自己思考一下,做了说明,感觉很清晰,希望对大家有帮助. 求两个数a b的最大公约数m 辗转相除法 m是a b的最大公约数,所以a b一定是m的整数倍 a=xm,b=ym 差值a-b=(x ...
- 轻松掌握辗转相除法(原理+俩道简单编程题详解)
辗转相除法 什么是辗转相除法? 辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法. 辗转相除法是如何求俩个自然数的最大公约数的? 话不多说上例题: 例如,求(319,377 ...
- 辗转相除法的原理解析与实现
今天看到个问题就随便写写.
- 解析:求最大公约数的“辗转相除法原理”
题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 用c语言编代码如下: #include<stdio.h> void main() { int p, r, n, m, temp; ...
- python实现辗转相除法求最大公约数和最小公倍数
辗转相除法数学原理 辗转相除法也称欧几里得算法,是用来求两个正整数的最大公约数的算法.接下来我们用实例来解释一下.假如我们需要求12和21的最大公约数,用辗转相除法是这样实现的: 21 / 12 = ...
- C语言学习记录——辗转相除法
抛开程序一年多了,重新捡起来,开始用浙大老师的教程. 因为目前没有从事开发的工作了,所以整个学习的过程完全不急躁,可以说是相当得慢,一节课会反反复复地去看,去思考这个知识点到底是在讲什么. 第一节课通 ...
- 【常用算法】辗转相除法求最大公约数
辗转相除法,又称欧几里德算法(Euclidean Algorithm),是求两个数的最大公约数(greatest common divisor)的一种方法.用较大的数除以较小的数,再以除数和余数反复做 ...
- 一文搞定最大公约数(四种方法,赋原理和比较,超详细解答)
最大公约数 前言 1.暴力穷举法 代码 2.辗转相除法 步骤 原理 代码 3.更相减损法 步骤 原理 代码 比较 4.stein算法 比较 运算符 & 移位操作符 原理 步骤 代码 前言 求两 ...
最新文章
- 完美解决百度地图MarkerClusterer 移动地图时,Marker 的Label 丢失的问题
- BZOJ 1798: [Ahoi2009]Seq 维护序列seq
- jquery常用表单操作
- 从0到1构建美团压测工具
- ASP.NET TextBox 当鼠标点击后清空默认提示文字
- eclipse报错: Unhandled event loop exception No more handles
- 在类库中使用Session
- 基于python+django框架+Mysql数据库的电影院售票选座系统设计与实现
- 16种常用的数据分析方法-聚类分析
- mayapython常用模块_Maya中Python普及教程
- amd编码器 hevc_HEVC/H.265硬件编码器实现杂谈
- from StyleFrame import StyleFrame, Styler ModuleNotFoundError: No module named ‘StyleFrame‘
- IOS开发—iOS视频拍摄与压缩
- 长链亲脂性二烷基碳菁类染料DiR iodide,DiR细胞膜染料,100068-60-8
- 技术交流微信群欢迎小伙伴前来交流
- Google earth 生成研究区适量边界(研究区边界从哪来?)
- 2018秦皇岛ccpc赛后总结
- 固态硬盘和机械硬盘的区别
- hpuoj 1210: OY问题 [搜索]
- springboot+springdata+elasticsearch+logstash+拼音分词实现全文搜索