题目:http://poj.org/problem?id=1845
题意:给定两个正整数和,求的所有因子和对9901取余后的值。
分析:很容易知道,先把分解得到,那么得到,那么
的所有因子和的表达式如下
但是你会发现费马小定理和扩展欧几里得算法求逆元是有局限性的,它们都会要求与互素...
分类:
其他好文 时间:
2016-03-30 17:59:37
阅读次数:
153
刚学习的扩展欧几里得算法,刷个水题 求解 线性不定方程 和 模线性方程 求方程 ax+by=c 或 ax≡c (mod b) 的整数解 1、ax+by=gcd(a,b)的一个整数解: <span style="font-size:14px;">void ex_gcd(int a,int b,int ...
分类:
其他好文 时间:
2016-03-29 19:22:43
阅读次数:
178
扩展欧几里德算法 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么做? 欧几里德有个十分又用的定理: gcd(a, b) = gcd(b , a%b) ,这样,我们就可以在几
分类:
编程语言 时间:
2016-03-22 22:01:34
阅读次数:
375
欧几里得算法: 如果求两个数的最大公约数,那么最一般的求法是设置一个变量i=1,然后i不断加一,如果i加到某个数后两个数都能整除这个数了,然后把这个变量保存下来,然后最后的结果中最大的就是最大公约数. 然而这种方法时间复杂度可想而知有多高,所以一般情况瞎并不用这种方法,那么就有下面的欧几里得算法:
分类:
编程语言 时间:
2016-03-20 23:54:21
阅读次数:
259
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/F;
关于欧几里得和扩展欧几里得算法请参阅:http://blog.csdn.net/qq_27599517/article/details/50888092;
题意:题目很简单,给出一组数求两两之间最大的最大公约数;
分析:这道题恶心在不给有多...
分类:
编程语言 时间:
2016-03-16 14:12:43
阅读次数:
197
序 求最大公约数的最常用的算法是欧几里得算法,也称为辗转相除法。问题定义为求i和j的最大公约数gcd(i,j),其中i和j是整数,不妨设i>j。算法可以递归的表示:1. 如果j能整除i,那么gcd(i,j)=j; 2. j不能整除i,令r=i%j,那么gcd(i,j)=gcd(j,r)。 C实现 i
分类:
其他好文 时间:
2016-02-25 15:16:03
阅读次数:
128
这题大概是,整数模9973乘法群?然后存在乘法逆元。 于是题目要求$A \div B \pmod {9973} $其实就相当于求$A \times B^{-1}\pmod {9973} $。 只要求出B的逆元就OK了。 计算模n下的乘法逆元可以用用扩展欧几里得算法求解,即解下面的线性同余方程: $$
分类:
其他好文 时间:
2016-02-04 11:33:24
阅读次数:
136
辗转相除法(又称欧几里得算法)是求最大公因数的算法 要求a,b的最大公约数(a>b),我们可以递归地求b,a%b的最大公约数,直到其中一个数变成0,这时另一个数就是a,b的最大公约数。 C++实现: int gcd(int a,int b){ retuen b?gcd(b,a%b):a; } 或:
分类:
其他好文 时间:
2016-02-03 20:54:38
阅读次数:
245
无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程: $$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$ 最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。 1 #include<cst
分类:
其他好文 时间:
2016-02-03 20:01:31
阅读次数:
146
今天接到scy的压缩包,开始做数论专题。那今天就总结一下拓展欧几里得求解不定方程和同余方程组。 首先我们复习一下欧几里得算法: 1 int gcd(int a,int b){ 2 if(b==0) return a; 3 return gcd(b,a%b);4 } 拓展欧几里得算法: 推导过程: 给
分类:
其他好文 时间:
2016-02-01 23:51:53
阅读次数:
281