题目链接:https://codeforces.com/contest/1152/problem/C 题目大意:给定两个正整数a,b,其中(1<=a,b<=1e9),求一个正整数k(0<=k),使得a+k与b+k的最小公倍数最小。 解题思路:首先我们需要知道gcd(a,b)=gcd(a,b-a)=g ...
分类:
其他好文 时间:
2019-04-30 22:11:56
阅读次数:
180
找到一个k使得a+k与b+k的最大公倍数lcm最小 欧几里得算法:gcd(a,b) = gcd(b,a mod b)。 gcd是b-a的除数。 让我们迭代b-a的所有除数q。 这也意味着a(modq)= b(modq)。 如果a(modq)= 0,我们可以使用k = 0。 否则,相应的k应为q-a( ...
分类:
编程语言 时间:
2019-04-26 21:17:14
阅读次数:
183
一.取模运算 取模(取余)运算法则: 1. (a+b)%p=(a%p+b%p)%p; 2.(a-b)%p=(a%p-b%p)%p; 3.(a*b)%p=(a%p * b%p)%p; 4.(a^b)%p=( (a%p)^b )%p; 5. ( (a+b)%p+c )%p=( a+(b+c)%p )%p ...
分类:
其他好文 时间:
2019-04-22 20:47:01
阅读次数:
321
非常easy的数学问题。只是大家是否可以准确实现? 求最大公约数(greatest common divisor)的方法: 一、辗转相除 ①设有两个正整数i、j。 且i>j; ②计算c=i%j。 ③若c等于0,则j是i和j的最大公约数;若c不等于0,则i=j。j=c。 ④反复②③直到求得最大公约数; ...
分类:
其他好文 时间:
2019-04-21 10:18:35
阅读次数:
152
本篇将讲述一下辗转相除法 GCD(欧几里得)算法求的是两数的最大公约数 LCM算法则是在GCD的基础上算出两数的最小公倍数 代码如下: inline int gcd(int a,int b) { return !b? a:gcd(b,a%b); } inline int lcm(int a,int ...
分类:
其他好文 时间:
2019-04-16 00:46:16
阅读次数:
167
题目描述 给出一个n,求1 n这n个数,同n的最小公倍数的和。 例如:n = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66。 由于结果很大,输出Mod 1000000007的结果。 输入 cpp include define ll long lon ...
分类:
其他好文 时间:
2019-04-08 21:48:53
阅读次数:
184
PTA 求最大公约数:辗转相除法 求最小公倍数:两数相乘除以最大公约数 ...
分类:
其他好文 时间:
2019-04-05 16:58:09
阅读次数:
214
一、最大公约数与最小公倍数 最大公约数,属于数论所探究的内容。 最大公约数可以通过下面的三种方法求出来。 最小公倍数呢,它与最大公约数的乘机为所求数之积。 比如求 x,y的最大公约数和最小公倍数 记住这个公式: x*y=最小公倍数*最大公约数 二、求最大公约数的三种方法 ①辗转相除法 算法流程图 i ...
分类:
其他好文 时间:
2019-04-05 12:42:52
阅读次数:
1190
前言: 我的数学真是太菜了,所以这里就都不给出证明了 我是一定不会告诉你其实是因为我不会证的,想看证明的可以看我们大佬的博客 正文: GCD $gcd$ 的求法当然要用欧几里得定理,就是辗转相除 求出了 $gcd$ 之后,我们就可以求出 $lcm$(最小公倍数) 有一个性质是 $gcd(a,b) \ ...
分类:
其他好文 时间:
2019-03-18 13:40:29
阅读次数:
173