先看欧几里得算法 即辗转相除法
gcd(a, b) = gcd(b, a % b);
简单的证明
证明: 令a % b = r
设 d 是 a,b 的公约数 即 d|a && d|b
又 r = a – kb 所以 r|d 即a,b的公约数都是 b,r的公约数
设 d’ 是 b, r 的公约数 即 d’|b && d’|r
又 a = kb + r 所以d’|a 即 b,r...
分类:
其他好文 时间:
2015-07-12 12:52:17
阅读次数:
110
题目189题目信息运行结果本题排行讨论区
兔子的烦恼(一)
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
在一座山上有n个山洞(每个洞从0~n-1分别编号),这山上有一只兔子躲在山洞里,有一只狼,从编号为0的山洞开始入洞,每隔m-1个洞,再次入洞抓兔子,现在问,兔子能否避免这场灾难?
例如:m=2 and n=6, 狼将要进入的山洞号为:0,2,...
分类:
其他好文 时间:
2015-07-07 22:57:07
阅读次数:
175
辗转相除法 int gcd(int m, int n){ int remainder; while(remainder!= 0){ remiander = m%n; m = n; n = remainder; } return m; }有两整数a和b:① a%b得余数c② 若c=0,则b即为两数的最...
分类:
其他好文 时间:
2015-07-06 19:33:17
阅读次数:
95
最大公约数问题问题描述 写一个程序,求两个正整数的最大公约数。如果两个正整数都很大,有什么简单的算法吗?分析与解法【解法一】 最简单的实现,就是直接用代码来实现辗转相除法。从上面的描述中,我们知道,利用递归就能够很轻松地把这个问题完成。 具体代码如下: 1 package chapter2sh...
分类:
其他好文 时间:
2015-07-05 12:23:46
阅读次数:
157
递归函数:在F#中一般不允许调用自身,而只能通过关键字rec来声明其为递归函数:最大公约数的应用,使用辗转相除法:[]let main argv = let rec gcd(a,b) = if a = 1 then b elif b = 1 then a ...
分类:
其他好文 时间:
2015-07-03 21:55:28
阅读次数:
195
要求最小公倍数可先求出最大公约数 设要求两个数a,b的最大公约数伪代码:int yushu,a,b;while(b不等于0){ yushu=a对b求余 b的值赋给a yushu的值赋给b}代码: int gongyue(){ int yushu,a,b; while(b) ...
分类:
其他好文 时间:
2015-06-23 00:51:18
阅读次数:
145
如何求两数的最大公约数
一:
更相减损
//熟知的辗转相除法变形
main()
{
int a,b;
scanf("%d %d",&a,&b);
while(a!=b)
{
if(a>b)
a-=b;
else
b-=a;
}
printf("%d",a);
}
二:
辗转相除
//一般用递归描述算法
gcd(m,n)与gcd(n,...
分类:
其他好文 时间:
2015-06-18 11:42:05
阅读次数:
120
Find the seed of a number.Eg : 1716 = 143*1*4*3 =1716 so 143 is the seed of 1716. find all possible seed for a given number.辗转相除法,由性质可利用 sqrt(num) <= ...
分类:
其他好文 时间:
2015-06-14 15:05:22
阅读次数:
181
最大公约数是一个很经典的数学问题,对于这个问题有四种通用的解法,质因数分解法,短除法,不过比较常用的还是辗转相除法,算法出自于欧几里的著作《几何原本》,还有一个就是出自《九章算术》的更相减损法,一般实现的时候都是通过辗转相除法实现,基本的逻辑是这样的:假设把a和b的最大公约数表示成为f(a,b),并...
分类:
编程语言 时间:
2015-05-27 20:41:18
阅读次数:
191
求最小公倍数算法最小公倍数=两整数的乘积÷最大公约数求最大公约数算法辗转相除法有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①#include
#include
using namespace std;const float EPS = 0.00001;
int bei(int a,...
分类:
其他好文 时间:
2015-05-26 18:48:18
阅读次数:
221