
数论
文章平均质量分 60
111111用户昵称不存在00000
这个作者很懒,什么都没留下…
展开
-
HDU1215——数论解法
题意:给出一个正整数n,求出不包含它本身的所有因子的和思路:运用算术基本定理对这个这个整数进行拆分整数约数和公式即,sum = (1+p1+p1^2+...+p1^a1)(1+p2+p2^2+...p2^a2)...(1+pk+pk^2+...pk^ak)(注:该公式计算结果包含整数本身)#include #include #include using nam原创 2016-07-13 11:17:32 · 656 阅读 · 0 评论 -
UVA10006->素数筛&&快速幂取模
UVA10006->素数筛&&快速幂取模题意: 判断输入的数是否是Carmichael number 如果一个数n,比它小的所有数a^n%n=a,并且这个数不是质数,则称这个数是Carmichael number题解: 先用素数筛打表,每次先判断输入的数是不是质数,如果不是,再接着判断这个数是否符合费马定理,如果符合则该数为Carmichael number代码:#includ原创 2016-08-10 00:12:57 · 375 阅读 · 0 评论 -
UVA10090->扩展欧几里得
UVA10090 扩展欧几里得题意: 现在有两种盒子要装n个珠子,给出每种盒子的容量和价值,求每个盒子恰好能装满的需要花费。题解: 要求最少花费,就要考虑每种盒子装单个珠子的花费,并且求最优解时让花费较高的那种盒子尽可能少,即先求出这种盒子的最小正整数解。 题目可以等价成一个线性方程求解的问题: n1*num1 + n2*num2 = n 解法使用扩展欧几里得定理。原创 2016-07-28 11:37:05 · 824 阅读 · 0 评论 -
欧几里得与扩展欧几里得介绍->POJ1061
1.欧几里德欧几里得算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明:表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r原创 2016-07-28 01:08:21 · 368 阅读 · 0 评论 -
数论->快速幂
数论基础快速幂算法介绍 算法利用了二分的思想,可以达到O(logn)。 可以把b按二进制展开为:b = p(n)*2^n + p(n-1)*2^(n-1) +…+ p(1)*2 + p(0) 其中p(i) (0<=i<=n)为 0 或 1 这样 a^b = a^ (p(n)*2^n + p(n-1)*2^(n-1) +…+ p(1)*2 + p(原创 2016-07-27 00:29:37 · 492 阅读 · 0 评论 -
LightOJ1236->算术基本定理
算术基本定理的应用题意:找出对于整数对(i,j),他们的lcm为n,这样的整数对有多少。思路:比如24=2^3*3^1:(1)如果一个数完整地包含了3^1但是没有完整地包含2^3(一个数x完整地包含某个质因数p及其出现的次数t,指x可以被p^t整除),比如3,6,12,那么另一个数必须完整地包含2^3,比如8,24。那么此时有六种组合(3,8),(3,24),(6,8),(原创 2016-07-13 00:58:31 · 1074 阅读 · 0 评论 -
HDU4349->Lucas定理
Lucas定理:A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0]) modp同余即:Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)原创 2016-07-25 01:17:16 · 411 阅读 · 0 评论 -
HDU4497GCD and LCM ——算数基本定理
如果G%L != 0,说明一定无解。把K = G / L质数分解,G / L = p1^t1 * p2^t2 * p3^t3 * ……;同时 x/= L, y/= L, z/=L,不影响结果。假设三个数字的质数分解是:x = p1^i1 * p2^i2 * p3^i3 * ……y = p1^j1 * p2^j2 * p3^j3 * ……z = p1^原创 2016-07-13 16:22:04 · 379 阅读 · 0 评论