欧几里得
gcd
阿聊
愿我千帆过尽,归来仍是少年
展开
-
hdu1722
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722解题思路:举个例子:4 6,用一个矩形来切割,其实应该是圆的。这里边界也得加上,因为首位其实是相连的。。。自己动手画下圆形的蛋糕模拟。先份成p块,然后再拼到一起,再从原来开始的地方,将蛋糕再分成q份,中间肯定会出现完全重合的块数为k,则此是需要分的块数就是 p + q - k.现在只需要求出k即可...原创 2017-07-26 16:08:43 · 344 阅读 · 0 评论 -
hdu2504
代码一://这个没有过#include<stdio.h>//typedef long long ll;int main(){ int T; scanf("%d",&T); long long a,b; while(T--) { scanf("%lld%lld",&a,&b); ...原创 2017-07-26 17:02:04 · 370 阅读 · 0 评论 -
codevs 1012
题目描述 Description给出n和n个整数,希望你从小到大给他们排序输入描述 Input Description第一行一个正整数n 第二行n个用空格隔开的整数输出描述 Output Description输出仅一行,从小到大输出n个用空格隔开的整数样例输入 Sample Input33 1 2样例输出 Sample Output1 2 3数据范围及提示原创 2018-02-05 15:48:04 · 165 阅读 · 0 评论 -
hdu 1019 Least Common Multiple
题目一道水题,但是WA了两次,把 y = (arr[i]*y)/x; 换成 y = arr[i]/x*y;【先除后乘,以免溢出】#include<stdio.h>int arr[1000];int gcd(int x,int y){ return (x%y==0?y:gcd(y,x%y));}int main(){ int T,n,x,y; sc...原创 2018-02-12 17:12:37 · 113 阅读 · 0 评论 -
hdu 1576 A/B 【扩展欧几里德】
题目A/9973=n那么:n= A - A / 9973 * 9973 ……①设:A/B=x 则A=B*x,代入① 得 n=B*x-A/9973*9973然后这个方程中的A/9973不要去纠结它,A就当不知道,然后,方程可变成二元方程 B * x - 9973 * y = n ;故:(x/n)B+(-y/n)9973=1=GCD(B,9973),该方程有解。 要...原创 2018-07-31 15:14:59 · 139 阅读 · 0 评论 -
Stein算法求最大公约数
首先引进一个符号:gcd是greatest common divisor(最大公约数)的缩写,gcd( x,y ) 表示x和y的最大公约数。然后有一个事实需要了解:一个奇数的所有约数都是奇数。这个很容易,下面我们要用到。 来研究一下最大公约数的性质,我们发现有 gcd( k*x,k*y ) = k*gcd( x,y ) 这么一个非常好的性质(证明我就省去了)。说他好是因为他非常符合我们化...翻译 2018-07-31 16:33:27 · 1017 阅读 · 0 评论