数论 辗转相除法 扩展欧几里德算法 素数 快速幂
2013-11-03 20:00
531 查看
一.辗转相除法
int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); }
二.扩展欧几里德算法
int extgcd(int a,int b,int &x,int &y) { int d=a; if(b){ d=extgcd(b,a%b,y,x); y-=(a/b)*x; } else{ x=1;y=0; } return d; }
三.素数
bool is_prime(int n){ for(int i=2;i*i<=n;++i) if(nn%i==0) return 0; return n!=1; } //约数枚举 vector<int> divisor(int n){ vector<int> res; for(int i=1;i*i<=n;++i){ if(n%i==0){ res.push_back(i); if(i!=n/i) res.push_back(n/i); } } return res; } //整数分解 map<int,int> prime_factor(int n){ map<int,int> res; for(int i=2;i*i<=n;++i){ while(n%i==0){ ++res[i]; n/=i; } } if(n!=1) res =1; return res; }
埃氏筛法
int prime[MXN]; bool is_prime[MXN]; int sieve(int n){ int p=0; for(int i=0;i<=n;++i) is_prime[i]=true; is_prime[0]=is_prime[1]=false; for(int i=2;i<=n;++i){ if(is_prime[i]){ prime[p++]=i; for(int j=2*i;j<=n;j+=i) is_prime[j]=false; } } return p; }
bool is_prime[MXL]; bool is_prime_small[MX_SQRT_B]; //对区间[a,b)内的整数执行筛法,is_prime[i-a]=true<=>i是素数 void segment_sieve(LL a,LL b){ for(int i=0;(LL)i*i<b;++i) is_prime_small[i]=true; for(int i=0;i<b-a;++i) is_prime[i]=true; for(int i=2;(LL)i*i<b;++i){ if(is_prime_small[i]){ for(int j=2*i;(LL)j*j<b;j+=i) is_prime_small[j]=false;//筛[2,sqrt(b)) for(LL j=max(2LL,(a+i-1)/i)*i;j<b;j+=i) is_prime[j-a]=false;//筛[a,b) } } } //(a+i-1)/i作用相当于ceil,不足往上加
快速幂
LL mod_pow(LL x,LL n,LL mod){ LL res=1; while(n>0){ if(n&1) res=res*x%mod; x=x*x%mod; n>>=1; } return res; }
相关文章推荐
- 筛数法来快速求素数----数论知识,很有用的
- Zoj 3529 A Game Between Alice and Bob 数论+博弈Nim 快速求数中有多少个素数因子
- 数论 - 快速幂运算 --- (快速幂+素数判断、水题)
- 数论快速入门(同余、扩展欧几里德、中国剩余定理、大素数测定和整数分解、素数三种筛法、欧拉函数以及各种模板)
- 四一。 数论 。4.19(gcd 扩展gcd,素数 ,快速幂)
- poj 1811 Prime Test(数论:大素数判定-分解)
- 用数组实现打印小于10000的素数的快速算法
- 南阳题目187-快速查找素数
- POJ 2154 Color(组合数学-波利亚计数,数论-欧拉函数,整数快速幂)
- codeforces 230B T-primes 解题报告 数论+素数
- 数论之素数的判断
- zoj 月赛B题(快速判断一个大数是否为素数)
- Carmichael Numbers(快速幂和素数筛选)
- 寻找素数对 (数论)
- 快速查找素数 http://acm.nyist.net/JudgeOnline/problem.php?pid=187
- (超快速计算素数个数)10的11次方内素数个数
- 【OI之路】02数论算法-2素数判断
- 快速找出素数
- [poj2739][水题]数论_求素数和
- CF449C Jzzhu and Apples (筛素数 数论?