数论
A_Pathfinder
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
利用扩展欧几里得求一元同余方程和求逆元
先明白扩展欧几里得求不定方程:https://blog.csdn.net/A_Pathfinder/article/details/88131225 再放个逆元整理的:https://blog.csdn.net/weixin_41162823/article/details/82824988?tdsourcetag=s_pctim_aiomsg 同余的定义:给出一个正整数m和两个整数a,b,如...原创 2019-03-05 16:55:51 · 526 阅读 · 0 评论 -
费马小定理和欧拉定理
先拓展一下威尔逊定理:如果p是素数,则(p-1)! ≡ -1(mod p)。 例:p=11,10!=1*(2*6)*(3*4)*(5*9)*(7*8)*10 ≡ 1*10 ≡ -1(mod 11); 费马小定理:(定义)如果p是素数,a是正整数,且gcd(a,p)=1(互质),则a^(p-1) ≡ 1(mod p); 定理1:由此可以得出a^...原创 2019-03-06 08:57:21 · 1060 阅读 · 0 评论 -
欧几里得算法 gcd
又叫辗转相除法,求最大公约数。 时间复杂度在O(long max(a,b))内; 核心代码: int gcd(int a,int b){ return b==0?a:gcd(b,a%b); } 有些地方会卡时,所以另给出一种 ll gcd(ll a,ll b){ // return b==0?a:gcd(b,a%b); if(a==0) return 1; if(a<0)...原创 2019-03-04 12:54:00 · 506 阅读 · 0 评论 -
全排列 c++
全排列在STL中有next_permutation()函数,针对数组,如下 #include<bits/stdc++.h> using namespace std; int main(){ int a[3]={1,2,3}; do{ for(int i=0;i<3;i++) printf("%d%c",a[i],i==2?'\n':' '); }while(n...原创 2019-03-09 15:38:48 · 816 阅读 · 0 评论 -
唯一分解定理
唯一分解定理又叫算术基本定理:任意一个合数(非素数),都能写成任意素数幂的乘积形式。 定理应用:(来源,百度百科) 模板代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5; bool is[maxn]; int cnt =0; ll spr[max...原创 2019-03-07 08:20:51 · 1449 阅读 · 0 评论 -
求解不定方程 (扩展欧几里得算法)
想看详细证明的:https://www.cnblogs.com/hadilo/p/5914302.html 扩展欧几里得算法,简称 exgcd,一般用来求解不定方程,求解线性同余方程,求解模的逆元等,本篇只给出解不定方程ax+by=c; 定理1: 如果a和b都是整数,则有整数x 和整数y 使得 ax+by=gcd(a,b);(Bezout定理) 定理2:整数a,b互素当且仅当存在整数x,y使...原创 2019-03-04 19:15:33 · 2572 阅读 · 0 评论 -
求排列组合的两种方式 模板
(图片都来源百度百科) 先说p(n,m),表示从n个不同元素中取出m个元素,并按次序排列的排列数,即字典序,组成的排列叫全排列。 若从n个不同元素中取出m个元素,不考虑次序,则称从n中取出m个组合,其组合数表示为C(n,m)=n!/m!*(n-m)!; 关于排列组合的性质用途太多了,下次再统一整理,这里只介绍求C(n,m)的两种方式 第一种:连乘m个整数商: 对于m个连续...原创 2019-03-21 20:01:10 · 774 阅读 · 0 评论 -
Prime Test Miller_Rabin+Pollard_rho
传送门 这题卡的时间卡的真的厉害。不仅卡了Miller_Rabin算法,Pollard_rho算法,还卡了gcd 和 反复平方运算。 题目大意:给你一个数,如果是素数,直接输出prime,否则输出他的第一个素因子。 因为给的数特别大特别多,所以我们只能用Miller_Rabin算法进行大数判断,在判断不是素数后,还要用Pollard_rho算法进行分解。 两个都是神仙算法。首先看第一个吧,...原创 2019-08-03 22:16:40 · 381 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场) D triples I
传送门 题目简介: 就是给你一个数,要你求出能够 或运算 出原数并且你的数能被3整除的最小个数。 链接:https://ac.nowcoder.com/acm/contest/884/D 来源:牛客网 输入 2 3 7 输出 1 3 2 3 6 说明 3=3, (3|6)=7 这题就是一个小学的思路,我们都知道十进制中,任意一个数只要每一位相加的和能被3整除,那么这个...原创 2019-07-28 11:13:36 · 301 阅读 · 0 评论
分享