今天我思考了辗转相除法的原理,在此记录下来; 1,先介绍一下辗转相除法,这是为了求两个数的最大公约数的方法;如果有两个数a,b;且a>b,设a/b商q余c,则a和b的最大公约数也是b和c的最大公约数。这样辗转相除,直到余数为0时除式的商(也就相当于a/b时c那个位置的数字)即为最大公约数; 2,首先 ...
分类:
其他好文 时间:
2017-05-06 14:18:42
阅读次数:
160
Chapter 1. 数学基础 数论(一) Sylvia's I. 欧几里得算法. 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数(gcd). 内容:gcd(a,b) = gcd(b,a%b). 证明:设a=kb+r , 则r=a%b; ①设d为a,b的公约数,则有d|a , d|b ...
分类:
其他好文 时间:
2017-05-06 13:19:23
阅读次数:
153
一、问题描述 从键盘输入两个正整数a和b,求其最大公约数和最小公倍数。 二、算法思想及代码 求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法: (1)辗转相除法 用较大的数除以较小的数,再用除数除以出现的余数(第一余数),接着,再用第一余数除以出现的第二余数,如此反复,直到余 ...
分类:
其他好文 时间:
2017-05-05 23:03:32
阅读次数:
295
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】 题目: 最大公约数问题 题目分析: 编程之美上的经典算法 算法实现: #include <stdio.h> int gcd(int x, int y) { return ((!y) ? ...
分类:
编程语言 时间:
2017-05-05 17:16:05
阅读次数:
124
一道数论好题(math) Time Limit:1000ms Memory Limit:128MB 题目描述 rsy最近在研究欧几里得算法,不会的同学可以去看下课件以及代码…… 现在她想到了一个新的问题,求k个数的最大公约数! 事实上这个问题仍然很简单。所以rsy想强化一下,她觉得最大公约数等于1就 ...
分类:
其他好文 时间:
2017-05-03 22:00:04
阅读次数:
196
文章来源:http://blog.csdn.net/zhjchengfeng5/article/details/7786595 谁是欧几里德?自己百度去 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显 ...
分类:
编程语言 时间:
2017-05-01 22:18:43
阅读次数:
251
做这个题的时候蛋疼的想一个知道[l,r]的gcd那[l+1,r]的能不能快速算出来。 然后想了一下发现丝毫没有道理。 于是又扒了题解。 神奇的题解说,一个序列的gcd最多有log个,突然就GG了 诶,遇到这样的题还是多搞几组数据观察一下规律的好 ...
分类:
Web程序 时间:
2017-05-01 20:55:55
阅读次数:
287
import java.util.*; /*求最大公约数和最小公倍数*/ public class MaxCommonDivisorAndMinCommonMultiple { public static void main(String[] args) { Scanner scan = new S ...
分类:
其他好文 时间:
2017-04-29 15:09:22
阅读次数:
238
此处用的是最简单的遍历方法,先求出2个数的最小公倍数,再用两个数之积去除以最小公倍数就能够得到最大公约数。 ...
分类:
其他好文 时间:
2017-04-28 10:22:53
阅读次数:
120
第一种:用较小数的最大约数于较大数作求模元算#include<stdio.h>
/*
求两个数的最大公约数
*/
intmain(){
inta,b,max,min,i,result;
scanf("%d,%d",&a,&b);
printf("您输入的的值分别为%d,%d\n",a,b);
if(a>b){
max=a;
min=b;
}elseif(a==b){
result=a;
g..
分类:
编程语言 时间:
2017-04-27 19:47:02
阅读次数:
180