![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 50
lpls1
这个作者很懒,什么都没留下…
展开
-
已知a、b,求其最大公比例(辗转相减法的扩展应用)
已知a、ba、ba、b的值,且已知其可以表示为如下形式:a=qk0,b=qk1(q、k0、k1均为正整数)a=q^{k_0},b=q^{k_1} (q、k_0、k_1均为正整数)a=qk0,b=qk1(q、k0、k1均为正整数)求ppp,使得:p=qg,g=gcd(k0,k1)p=q^{g},g=gcd(k_0,k_1)p=qg,g=gcd(k0,k1)ppp称为a、ba、ba...原创 2020-03-13 23:34:37 · 151 阅读 · 0 评论 -
求N以内有k个合因子的数的个数
题目如下:只有合数有合因子。在埃筛的过程中,每遇到一个合数i,就将其自身的合因子个数以及其倍数的合因子个数num[i],num[i2],num[i3]…加一。而且筛到这个合数的时候,它的合因子个数已经确定了。所以让这个合因子个数的数的数量 sum[num[i]] 加一。即可。埃氏筛法时间复杂度n*loglognpublic class Main { static int maxn=...原创 2020-02-27 21:00:05 · 186 阅读 · 0 评论 -
组合数(逆元)
组合数公式:C(n,m)=n!/((n-m)!*m!)(m≤n)组合数性质1:C(n,m)= C(n,n-m)组合数性质2:C(n,m)=C(n-1,m-1)+C(n-1,m)代码用组合数公式求C(n,m)%mod.设((n-m)!*m!)逆元为x,则C(n,m)%mod=n!*x%mod.public class Main { static InputReader sc=new Inp...原创 2020-02-16 01:45:06 · 410 阅读 · 0 评论 -
LightOJ 1336 Sigma Function(数论,sigma函数,唯一分解定理,奇偶性)
题意:统计1~n以内因子和为偶数的数有多少个,1<=n<=1e12。题目给出了由唯一分解定理推导出的因子和公式Then we can write,原创 2020-02-11 13:47:42 · 1495 阅读 · 0 评论 -
lightoj 1282 - Leading and Trailing(数论,n^k前几位)
题意:求nk的前三位和后三位,1<=n<231 ,1<=k<=107解法:后三位很好求,只需要对nk 进行对1000取模的快速幂运算,时间复杂度log(k)前三位,由于牵扯到进位问题,无法单纯用幂运算解决。n可以用10a 表示,a是一个浮点数,则nk 可以用10a*k表示,将a*k分为整数部分x,小数部分y,则nk =10x * 10y ,其中10x 的值等于n...原创 2020-02-11 13:01:02 · 180 阅读 · 0 评论 -
欧拉函数及部分性质
欧拉函数:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。通式:φ(x)=x*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn),其中p1, p2……pn为x的所有质因数。φ(1)=1(唯一和1互质的数就是1本身)。欧拉定理:对于互质的正整数a和n,有aφ(n) ≡ 1 mod n。性质:1.对于质数p,φ(p) = p - ...原创 2020-02-09 19:56:52 · 405 阅读 · 0 评论 -
计算几何
两点式直线方程:x-x1/x1-x2=y-y1/y1-y2原创 2020-02-05 23:35:56 · 92 阅读 · 0 评论 -
矩阵快速幂
先来回顾一下整数快速幂的代码:public static long qmi(long b, int i,int mod) { long ans=1; for(;i>0;i>>=1,b=b*b%mod)if((i&1)==1)ans = ans * b % mod; return ans;}整数快速幂,是用来计算AB %C的,时间复杂度在O(logB)以...原创 2020-02-05 23:34:46 · 102 阅读 · 0 评论 -
费马小定理
费马小定理是这样的,对于整数aaa,和质数ppp,如果aaa与ppp互质,那么有ap−1≡1(modp)a^{p-1} ≡1(modp)ap−1≡1(modp),欧拉将其上升为ap≡a(mod)pa^p≡a(mod)pap≡a(mod)p...原创 2020-02-05 22:02:34 · 151 阅读 · 0 评论 -
哥德巴赫猜想
哥德巴赫猜想:任何一个大于等于4的偶数均可以表示为两个素数之和。那么,任何一个大于等于4的奇数均可以表示为三个素数之和(注意这没有否定存在可以表示为两个素数之和的奇数)对奇数n,可分解为(n-3)+3,n-3为偶数,由上可得,奇数被分解为三个素数。...原创 2019-11-27 14:12:28 · 650 阅读 · 0 评论 -
求一个数的所有因子
一个数的因子总是成对出现的。所以只需枚举1~sqrt(n)的所有数记录一半的因子,再用n除以这些因子得到另一半因子。添加链接描述记录它的素因子再让这些素因子组合并不是很好的办法。。...原创 2019-11-24 12:37:51 · 1222 阅读 · 0 评论 -
分解素因子(唯一分解定理)
1.唯一分解定理,也叫算术基本定理,指的是任何n>=2,都可以分解为n=p1* p2 * p3 * … * pn,其中pi为质数。其包括两个断言:断言1:数n可以以某种方式分解成素数乘积。断言2:仅有一种这样的因数分解。(除因数重排外)。其可以化简为写法一,对单个n的时间复杂度为O(n):求n的所有素因子数列apublic static void main(String ar...原创 2019-11-22 19:29:19 · 3941 阅读 · 0 评论 -
线性筛
线性筛的时间复杂度为O(n),相比于普通的素数筛,在数据量巨大的情况下更快.然而线性筛可能常数较大,因此数据量小的时候仍然可以普通素数筛。线性筛: public static int prime[]=new int[maxn]; public static boolean notprime[]=new boolean[maxn]; public static void eu(int n) ...原创 2019-11-18 09:01:00 · 344 阅读 · 0 评论 -
鸽笼原理的应用
就是说,如果有n个正整数a1,a2…an,那么一定存在l、r ( 1 <= l < r <= n )使得al+…+ar可以被n整除。为了找l和r,我们可以维护一个前缀和数组A。当A[l]=A[r] (mod n)时,l+1–r之间的数字和一定可以被n整除。(0<=l<r<=n)这是因为一个数模n的值一定在[1,n-1]范围内,共n-1种(等于0的情况直接就...原创 2019-11-04 16:02:30 · 586 阅读 · 0 评论 -
模运算的运算法则及逆元的计算、利用逆元计算组合数
模运算与基本四则运算有些相似,但是除法例外。其规则如下:(a + b) % p = (a % p + b % p) % p(a - b) % p = (a % p - b % p) % p(a * b) % p = (a % p * b % p) % p(a^b) % p = ((a % p)^b) % p推论:若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c.........原创 2019-11-03 14:50:23 · 4660 阅读 · 0 评论 -
扩展欧几里得
先上辗转相除法的代码: public static int gcd(int a,int b){ if(b==0){ return a; }else{ return gcd(b,a%b); } }一开始没必要比较ab大小,因为gcd在第一次会自己矫正,使得a>b。扩展欧几里得:一定存在一对x,y,使得方程ax+by=gcd(a,b)成立。如何求解xy?因...原创 2019-11-03 11:24:40 · 93 阅读 · 0 评论 -
JAVA实现快速幂
public static long qmi(long b, long i,int mod) { long ans=1; for(;i>0;i>>=1,b=b*b%mod)if((i&1)==1)ans = ans * b % mod; return ans; }注意每次b*=b,ans*=b。快速幂中没有加法出现!保险起见,所有数据类型全设置为Long.ans初始值为1而不是0.(注意如果要对底数取模,底数是否可能是负数。如果可能是的话,取模函数写作如下形原创 2019-04-26 22:03:52 · 121 阅读 · 0 评论 -
埃氏筛法紫薯布丁
判断数n是否为素数,只需要对sqrt(n)以内的素数取余,有一个为0就是合数,否则为素数。这里有三点,1.若一个数为合数,则必有一个因子是小于sqrt(n)的。这点容易理解。2.合数必然有一个sqrt(n)以内的素因子。也很容易理解。3.怎样求sqrt(n)内的素数呢?需要用到素数筛。设sqrt(n)为x.从第一个素数2开始,划掉n以内的2的倍数数。如22,23,24…然后再找下一个没被...原创 2019-04-26 11:35:09 · 114 阅读 · 0 评论