
数论
sysu_zjl
这个作者很懒,什么都没留下…
展开
-
素数表生成
素数表生成const int maxn=10000000+10; const int maxp = 700000; #include <cstdio> int vis[maxn] //vis[i] = 1 则i是合数;vis[i] = 0,则i是1或者素数 int p[maxp] //筛素数 void sieve(int n) { int m = (int)sqrt(n+0.5);原创 2015-09-14 10:20:11 · 1248 阅读 · 0 评论 -
欧几里德算法
欧几里德算法typedef long long LL LL gcd(LL a, LL b) { if (!b) { return a; } else { return gcd(b, a%b); } }欧几里德拓展算法求出两个整数x和y,使得ax+by=d。在此前提下|x|+|y|取最小值。代码如下。// // main.cpp // 欧原创 2015-09-14 00:35:48 · 416 阅读 · 0 评论 -
除法的取模运算
逆元: 若,b*b1 % c == 1 则,b1称为b模c的乘法逆元。 在ACM中,许多除法取模都要用到求逆元。 但是,逆元,为什么能给我们带来 ( a/b ) % c == ( a*b1 ) % c ???(当然a/b要整除)要知道,取模等式等价变形中,是没有除法的!!!而推导式,还是没有用除法的地方!!!我们用反证法证明: 若b*b1 % c == 1,则( a/b ) % c != ( a转载 2017-03-16 11:39:01 · 7256 阅读 · 0 评论