/** * 本程序用于求解两个正整数的最大公约数 * 求解最大公约数往往可以用的有三种方法: * eg: 求正整数x和y的公约数 * 1. 遍历, 从1遍历到min(x, y)为止, 找到能够同时被两数整除的最大整数 * 2. 辗转相除法, 取k = x/y, b = x % y, 则 x = k ...
分类:
其他好文 时间:
2018-06-06 15:20:36
阅读次数:
209
问题描述 输入两个正整数,求其最大公约数和最小公倍数。 输入格式 每行输入两个正整数 a, b (1≤a,b≤104),空格隔开。 输出格式 输出两行,分别是 a, b 的最大公约数和最小公倍数。 代码 样例测试 2 3 1 6 辗转相除法 假设有两个数x和y,存在一个最大公约数z=(x,y),即 ...
分类:
其他好文 时间:
2018-05-18 21:16:52
阅读次数:
162
已知a、b求a与b的最大公因数与最小公倍数? 先说最大公因数 一种正常的算法是把a、b改写成多个素数的幂相乘。比如a=36和b=54,那么a=2^2*3^2,b=2^1*3^3。最大公因数就是取相同的素数的最小指数相乘,即2^1*3^2=18。亲爱的wyt理解这个就行了,下面可以不用看。 再来说说辗 ...
分类:
其他好文 时间:
2018-05-11 14:33:58
阅读次数:
185
ACM数论——欧几里得与拓展欧几里得 欧几里得算法: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 int gcd(int a,int b) { ...
分类:
其他好文 时间:
2018-05-06 17:00:45
阅读次数:
210
素数的判断其实谁都会,所以这篇跳过简单的素数判断,直接学习如何快速判断1到N的素数,以及判断大数据是否为素数。 现在我们先学习埃氏筛选法,此法实用与大规模判断素数,比如1到N的素数有那些啊,等等等等。 这个算法流弊哦,与辗转相除法一样古老哇。 首先,将2到n范围内的所有整数写下来。其中最小的数字2是 ...
分类:
其他好文 时间:
2018-05-02 21:01:45
阅读次数:
129
package 寻找公因数;import java.util.Scanner;public class 寻找公因数 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.p ...
分类:
其他好文 时间:
2018-04-11 00:15:51
阅读次数:
160
给出两个整数a,b 扩展欧几里得可以求出gcd(a,b),并且能顺带算出一组特解(x,y), 使ax+by=gcd(a,b)。 其实扩展欧几里得算法就是收集辗转相除法中产生的式子,倒回去,可以得到ax+by=gcd(a,b)的整数解。 原理如下: 设a=r0,b=r1, 那么根据辗转相除法, r0= ...
分类:
其他好文 时间:
2018-04-07 22:41:56
阅读次数:
179
发现如果给定两个数(a,b),可以用类似辗转相除法在logn的时间内计算出(反向)变到(1,1)的最小步数。 然而并不知道另一个数是多少? 暴力嘛,枚举一下另一个数,反正1000000的nlogn不虚啊 ...
分类:
其他好文 时间:
2018-03-22 10:49:17
阅读次数:
148
最近做到一个 分核桃的题。原题描述如下,就是一个求最小公倍数的题。这个知识点已经忘了。。就去百度查了一下,就有了这一篇总结。 这个是百度上的定义。 另外一个很重要的点 就是:最小公倍数=x*y/最大公约数;所以重点就转到了求最大公约数上。最大公约数可以用以下三种方法:辗转相除法,更相折损法(相减法) ...
分类:
其他好文 时间:
2018-03-11 00:11:16
阅读次数:
154
1.作业内容 用ADT的抽象数据模型描述你的有理数数据类型 2.数据结构、函数说明(截图展示你的头文件;头文件代码加入注释) 3.代码实现说明 做法:输入两个有理数分子、分母并构造,调用四则运算; 做法:动态分配存储空间,分别把2个变量分子、分母放入e1、e2中; 做法:利用辗转相除法,不断取余,直 ...
分类:
其他好文 时间:
2018-03-09 00:22:34
阅读次数:
204