- 2
- 0
- 约1.5千字
- 约 4页
- 2017-06-07 发布于重庆
- 举报
C语言算法最大公约数
基本算法——辗转相除法
问题:输出两个正整数a,b,且0ab, 输出其最大公约数p和最小公倍数q
解法1——
p从a开始,检测p是否能同时整除a和b, 是则停止循环,不是则令p减1,继续检测。
q从b开始,检测q是否能同时被a和b整除,是则停止循环,不是则令q增1,继续检测。
源程序1
#include stdio.h void main() { int a,b, p, q; do{
printf(请输入\n); scanf(%d%d,a,b);
} while ( a0 || b0 || ab);
p=a;
while( a%p!=0 || b%p!=0) p--;
printf(这两个数的最大公约数是%d\n,);
q=b;
while( q%a!=0 || q%b!=0) q++;
printf(这两个数的最小公倍数是%d\n,); }
改进——已知整数a,b及其最大公约数p,则直接可推算出最小公倍数q:
q= a*b/p;
源程序2
#include stdio.h void main() { int a,b, p, q; do{
printf(请输入\n); scanf(%d%d,a,b);
} while ( a0 || b0 || ab);
p=a;
while( a%p!=0 || b%p!=0) p--;
printf(这两个数的最大公约数是%d\n,);
q= a*b/p;
printf(这两个数的最小公倍数是%d\n,); }
解法1的缺点:效率低。
例如a=1397, b=2413,其最大公约数p=127,为得到p,共循环了1397-127+1=1171次。
如何提高效率?
解法2——辗转相除法,在西方称为Euclid(欧几里)算法。计算(1397,2413)2413为被除数,以小数1397为除数,得商为1,余数被除数,余数1016为数商为1,余数为3811016为被除数,381为除商为2余数为254381为被除数, 以余数254为除数, 相除得商为1 ,余数为127254为被除数,发现能整除,127就是最大公约数。整个计算过程为:
2413 1397 1 1016 1397 1016 1 381 1061 381 2 254 381 254 1 127 254 127 2 0 数学证明: b=as+r (0≤r ≤b-1),且a,b的最大公约数用符号(a,b)代表
若r=0,显然(a,b)=;
若r≠0, 由于=as+r,每个能整除,r的整数都能整除(能同时整除a,b,,r) | (a,b)
另一方面,r=-aq, 每个能整除a,b的整数都能整除r (能同时整除,r, 故有
(a,b) | (a,r)
因此(a,b)=(,r)
辗转相除法源: #include stdio.h void main() {
int a,b,r, m; do{
printf(请输入\n); scanf(%d%d,a,b); }while( a0 || b0 ||ab);
m=a*b;
do{ r=b%a; b=a;
a=r;
}while(r!=0);
printf(这两个数的最大公约数是%d\n,r);
printf(这两个数的最小公倍数是%d\n, m/r); //不能写“a*b/r”
}
您可能关注的文档
- 黄河鲤安全高效健康养殖技术.doc
- 黄海所理化实验楼信息工程改造设计要求-2007-925.doc
- C语言实现串行通信接口程序文档.doc
- 黄田学校初中汉语课程标准试题及答案.doc
- c语言实现八数码问题.doc
- 黄粉虫实验报告.doc
- c语言实现加密解密.doc
- 黄羊川职中中考总复习中考地理选择题专项复习550题.doc
- C语言实现学籍管理系统.doc
- 黄花木耳炒蛋的做法.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 农村电商(农产品电商)运营全套教学课件.pptx
- 四川省成都市第七中学2025-2026学年高一上学期11月半期考试英语(含答案).pdf
- (最新)ISO31073-2022风险管理术语(译2022-04)(推荐下载).pdf VIP
- (最新)村干部考试试题(含答案).docx VIP
- zippo图册年度机系列整合(更新至C25).docx VIP
- 多轴车铣复合加工运动转换方法:原理、实践与创新.docx
- 商务礼仪商务礼仪培训专用.ppt VIP
- 《铁路劳动安全》第04章预防机动车辆伤害.pptx VIP
- 化工制图第1章 制图基础.ppt VIP
- 化工制图AutoCAD应用基础-03章.pptx VIP
原创力文档

文档评论(0)