摘要:
具体内容见紫书p314-p316 一、a mod b a mod b:a除以b的余数,C语言表达式是a % b,且b!=0 二、模线性方程组 题目:输入正整数a,b,n,解方程ax ≡ b(mod n) 。a,b,n<=109。 新记号:同余 “≡” a ≡ b(mod n):a和b关于模n同余,即 阅读全文
摘要:
具体内容见紫书p313-p314 一、扩展欧几里得算法 思想:找出一对整数(x,y),使得ax+by=gcd(a,b) 举例:当“a=6,b=15”时,gcd(6,15)=3,故可以得到解“x=3,y=-1”,当然还有其他解“x=-2,y=1”。 程序: 下面方程中的a,b,c为任意整数。 结论1: 阅读全文
摘要:
具体内容见紫书p312-p313 一、用Eratosthenes筛法构造1~n的素数表 思想:对于不超过n的每个非负整数p,删除2p,3p,4p…,当处理完所有的数后,还没有被删除的就是素数。 代码: 自我感悟:有些题数据量太大,如果枚举会超时,此时可以预处理打表,然后数据量范围就缩小为表里的数了! 阅读全文
摘要:
具体内容参见紫书p310-p312 一、辗转相除法 恒等式:gcd(a,b) = gcd(b,a%b) 边界条件:gcd(a,0) = a 辗转相除法的关键(恒等式)和边界条件一起构成了下面的程序: 这个算法称为欧几里得算法!!!! 二、求lcm 公式:gcd(a,b) * lcm(a,b) = a 阅读全文