题目传送门: [http://codeforces.com/contest/892/problem/C] 题意: 给你一个长度为n的数组,相邻两个元素的GCD(最大公约数)可以取代二者的任意一个,问你最少需要多少个操作数使得所有元素变为1。 如果不可以全化为1,输出0。 思路: GCD性质:gcd( ...
分类:
其他好文 时间:
2018-07-28 15:28:06
阅读次数:
172
gcd就是最大公约数,gcd(x, y)一般用(x, y)表示。与此相对的是lcm,最小公倍数,lcm(x, y)一般用[x, y]表示。 人人都知道:lcm(x, y) = x * y / gcd(x, y) 证明起来也不是很难: (这真的是我自己写的,因为博客园不支持这格式……) 至于gcd的求 ...
分类:
其他好文 时间:
2018-07-28 12:03:03
阅读次数:
113
问题:给出两个数a和b,求出他们的最大公约数(greatest common divisor)。 解法一:辗转相除法,又叫欧几里得算法。两个正整数a和b(a>b),他们的最大公约数等于a除以b的余数和b之间的最大公约数。 比如10和25,25除以10余5,那么10和25的最大公约数等同于5和10之间 ...
分类:
其他好文 时间:
2018-07-27 21:10:10
阅读次数:
204
源自:百度百科 辗转相除法 辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。 例如,求(319,377): ∵ 319÷377=0(余319) ∴(319,377)=(377,319); ∵ 377÷319=1(余58) ∴(377,319)=(319,58); ∵ 3 ...
分类:
编程语言 时间:
2018-07-27 14:49:50
阅读次数:
218
假设: a = b k + r 求证: gcd(a, b) = gcd(b, r) 证明: 设c = gcd(a, b), d = gcd(b, r) c | a, 表示能够整除a 1.证出c ...
分类:
其他好文 时间:
2018-07-26 23:38:09
阅读次数:
172
1 #include 2 using namespace std; 3 4 int Gcd(int a,int b){ 5 if(a%b==0) return b; 6 else return Gcd(b,a%b); 7 } 8 9 int main(){ 10 int a,b; 11 while(... ...
分类:
其他好文 时间:
2018-07-26 18:47:48
阅读次数:
141
题目描述 输入 2 个正整数 x,y,求出满足下列条件的 P,Q 的个数 条件: P,Q 是正整数 要求P,Q 以 x 为最大公约数,以 y? 为最小公倍数. 试求:满足条件的所有可能的 2个正整数的个数. 输入输出格式 输入格式: 2 个正整数 x,y 输出格式: 1 个数,表示求出满足条件的 P ...
分类:
其他好文 时间:
2018-07-25 23:57:58
阅读次数:
290
#include<iostream>#include<algorithm>using namespace std;int main (){ int n; cin>>n; while(n--) { int max; int min; int a,b; cin>>a>>b; if(a<b) { max= ...
分类:
其他好文 时间:
2018-07-22 21:16:23
阅读次数:
151
一。欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 递归实现: 优化 迭代实现 二.扩展欧几里德算法 基本算法:对于不完全为 0 的 ...
分类:
其他好文 时间:
2018-07-22 18:06:15
阅读次数:
254
https://pintia.cn/problem-sets/994805260223102976/problems/994805268334886912 一个分数一般写成两个整数相除的形式:/,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。 现给定两个不相等的正分数 / 和 / ...
分类:
其他好文 时间:
2018-07-20 11:16:47
阅读次数:
156