![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 78
chen476328361
这个作者很懒,什么都没留下…
展开
-
poj2891 中国剩余定理
对于同余方程组: x=a1 (mod m1); (1) x=a2 (mod m2); (2) 方程组有一个小于m(m1,m2的最小公倍数)的非负整数解的充分必要条件是(a1-a2)%(m1,m2)==0 ,利用扩展欧几里德算法。 两式联立:a1+m1*y=a2+m2*z。 则:a1-a2=m2*z转载 2013-09-18 22:02:43 · 470 阅读 · 0 评论 -
poj 1854 (素数分解+递归二分求等比数列+...)
题意:给你两个数a,b;求a^b的所有的因子的和模上9901;做法:这道题目应用定理主要有三个:(1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式。 A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数(2) 约数和公式:对于已经转载 2013-09-16 17:05:51 · 1042 阅读 · 0 评论 -
数论总结
1.欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a -原创 2013-09-11 20:55:10 · 762 阅读 · 0 评论 -
POJ 2689 (素数的二次筛选)
poj 2689 Prime Distance (素数筛选的经典应用)题意:给出一个区间,长度算法:素数筛选其中区间的数可能较大,因此如果用试除法的话,显然不行的;用筛选法,首先第一次筛选出从1到47000之间的素数;第二次筛选时,利用第一次筛选出来的素数,判断L到U区间范围内的数是否是素数;因为范围是1以内的数组,用res[i-L]的值为0转载 2013-09-19 16:39:48 · 634 阅读 · 0 评论 -
poj 2635
学到三点:1:素数的打表模板int yes[SIZE];void find_prim(){ int temp=sqrt(SIZE)+0.5; memset(yes,0,sizeof(yes)); for(int i=2;i<=temp;i++) if(!yes[i]) { for(int j=i*i;转载 2013-09-15 16:00:30 · 389 阅读 · 0 评论 -
POJ2115 扩展欧几里德算法求解模线性方程
扩展欧几里德算法源于欧几里德算法。欧几里德算法:gcd(a,b)= gcd(b,a%b)。证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有d|a, d|b, 而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数 假设d 是(转载 2013-09-13 10:09:58 · 761 阅读 · 0 评论 -
数论知识
数论中一个最基本、最古老而当前仍然受到人们重规的问题就是:1、判别给定的整数是否素数(简称为素数判别或素性判别)。2、将大合数分解成素因子乘积(简称为大数分解)。个人:2中 所谓的大合数,应该不是普通的合数。该合数能分解成素因子的乘积 应该是唯一的。最直接的素数判别和大数分解方法就是试除法,即对整数n,用2,…,n-1去试除,来判定n是否素数,分解式如何。这个方转载 2013-09-21 15:12:22 · 2148 阅读 · 0 评论 -
快速幂取模算法
快速幂取模算法在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部分时有点转载 2015-04-15 10:49:27 · 534 阅读 · 0 评论