摘要: 一、加法、减法、乘法取模 二、大整数取模 求n mod m 的值,(n ≤10100,m ≤109) 思路:首先,将大整数根据秦九韶公式写成“自左向右”的形式:4351 = ((4 * 10 + 3) * 10 + 5) * 10 + 1,然后利用模的性质,逐步取模。 三、幂取模 直接暴力写是O(n 阅读全文
posted @ 2018-09-09 16:37 Rogn 阅读(3155) 评论(0) 推荐(0)
摘要: 一、欧几里得算法 也叫辗转相除法,关键在于这个恒等式:gcd(a,b) = gcd(b,a % b),它的边界条件是gcd(a,0) = a. 这个虽然是递归,但非常高效,可以证明,gcd递归的层数不超过4.7851lgN + 1.6723,其中N = (a,b). 二、扩展欧几里得算法 过程代码, 阅读全文
posted @ 2018-09-09 15:52 Rogn 阅读(430) 评论(0) 推荐(0)
摘要: 模板 阅读全文
posted @ 2018-09-09 14:43 Rogn 阅读(287) 评论(0) 推荐(0)
摘要: 一、n的欧拉phi函数值 思路:需要用试除法依次判断√n内的素数,这样需要先生成√n内的素数表,但其实不必这么麻烦:只需要每次找到一个素因数之后把它“除尽”,即可保证找到的因数都是素数(假如当前找到的因素不是素数,则存在更小的因数,与“除尽“矛盾) O(√n) 二、1~n中所有数的欧拉phi函数值 阅读全文
posted @ 2018-09-09 11:36 Rogn 阅读(925) 评论(0) 推荐(0)