| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2003 人关注过本帖
标题:求最大公约数和最小公倍数的原理
只看楼主 加入收藏
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
 问题点数:0 回复次数:5 
求最大公约数和最小公倍数的原理
求用C语言求最大公约数的原理和最小公倍数的原理...谢谢
搜索更多相关主题的帖子: 最大公约数 最小公倍数 原理 C语言 
2007-04-17 16:34
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
这个帖子好象有人发过
就是用辗转相除

   好好活着,因为我们会死很久!!!
2007-04-17 16:38
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

#include <stdio.h>
#include <conio.h>
int main()
{
int min,max;
int temp;
int saveData[2];
clrscr();
scanf("%d %d",&min,&max);
saveData[0]=min,saveData[1]=max; /*保存输入的两个数,以在求最小公倍数用*/
if(max<min) /*使得max中存放较大的数,min存放较小的数*/
{
temp=min;
min=max;
max=temp;
}

while(max%min!=0)
{
temp=min;
min=max%min;
max=temp;
}
printf("最大公约数:%d\n",min);
printf("最小公倍数:%d\n",saveData[0]*saveData[1]/min);
getch();
}


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-04-17 16:42
七舍利
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-3-23
收藏
得分:0 

人家要的是原理~

2007-04-17 19:13
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
首先要证明gcd(x,y)=gcd(y,x%y)(x>y)
如果x,y的最大公约数是d
那么可以写成;
x=a*d;y=b*d;...........(1)
设x=q*y+r(0<=r<y)......(2);
把(1)的表达式代入(2)可以得到
r=a*d-q*b*d
所以d是y和r的约数,
再假设y,r的最达公约数是c且c!=d;那么 又有
y=q2*c;r=q3*c;.........(4)
把(4)代入到(2)得:
x=q*q2*c+q3*c;
显然与原来d是x和y的最大公约数矛盾:

x=q1*y+r1;(0<=r1<y)
y=q2*r1+r2(0<r2<r1)
.
.
.
ri=qi*r(i+1)+r(i+2) (0<=r(i+2)<r(i+1))//括号里的代表下标
接下来你要发现y>r1>r2.....>ri>....>=0
所以最后余数是逼近0的
这个时候那个除数就是gcd



中文和英文的切换好累啊

2007-04-17 19:38
wuwei168668
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-3-11
收藏
得分:0 
哈……太好啦。
我的作业就有这么一道题的。
一直想不通要怎么做!
可以偷偷懒了。
嘿!嘿!嘿!

学C语言难得过老外学用中国的筷子吗?
2007-04-17 20:24
快速回复:求最大公约数和最小公倍数的原理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014486 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved