day2_ 数论

研究整数有关的理论,研究取膜意义下的运算理论。

1.枚举一个数的所有约数   o(sqrt(n))

没啥好说的,直接代码。

2.分解质因数

就是从2开始枚举,如果这个没被去掉过,就把他的倍数全都消掉,这样我们每次取的时候都是这个数的质因数;一个数最多有一个>sqrt(n)的质因数,且这个质因数的指数最多是1。

补充:

算数基本定理:任何一个大于一的非质数N,N可以唯一分解成有限个质数的成绩,暨N=p1^q1*p2^q2*……*pk*qk;q1~qk均为正整数,p1~pk均为质数;

3.一个数最多有多少个约数?

由算数基本定理得每一个pi都有qi + 1种方法(不是q(i+1)),因为可以看成一个决策问题,每一个位置可选可不选,选的话选几个,这样就是每一位有qi+1种取法;暨n的约数和ans*=(qi +1)(1<=i<=k);

4.1~n所有的数的因数个数和怎么表示,或者数量级是多少;O(n)

以为有啥贼强的小结论啥的,经过两个巨佬吊打后,告诉我直接求出每一个数的因数个数和,然后加起来就行了???行吧。

巨佬传送门:

嗯,那么问题变成怎么求一个数的因数和。我们还得用到算数基本定理:

我们知道一个数有多少个因数,那么我们把他加起来不就完了。

Ans=(1+p1+p1^2+……+p1^q1)(1+ p2+p2^2+……+p2^q2)……(1+pk+pk^2+……+pk^qk);把这个式子拆开就是所有约数的和;

5.怎么找1~n的所有素数

欧拉线性筛

 

6.最大公约数

欧几里得算法(辗转相除,辗转相减);

7.同余

同余的基本运算:

反身性:a≡a (mod m)

对称性: 若a≡b(mod m),则b≡a(mod m)

传递性: 若a≡b(mod m),b≡c(mod m),则a≡c(mod m)

同余式相加:若a≡b(mod m),b≡c(mod m),则a ± c≡b ± d(mod m)

同余式相乘:若a≡b(mod m),b≡c(mod m),则ac≡bd(mod m)

线性运算:如果a≡b(mod m),c≡d(mod m),那么a ± c≡b ± d(mod m),且a * c≡b * d(mod m)

除法:若ac ≡ bc (mod m) c≠0 则 a≡ b (mod m/gcd(c,m)) 其中gcd(c,m)表示c,m的最大公约数。特殊地 ,gcd(c,m)=1 则a ≡ b (mod m)

幂运算:如果a ≡ b (mod m),那么a^n ≡ b^n (mod m)

若a ≡ b (mod m),n|m,则 a ≡ b (mod n)

若a ≡ b (mod mi) (i=1,2…n) 则 a ≡ b (mod [m1,m2,…mn]) 其中[m1,m2,…mn]表示m1,m2,…mn的最小公倍数

求线性同余方程的解

1.扩展欧几里得算法:

  对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。

   要求线性同余方程的解,首先要学会用扩展欧几里得算法求不定方程的最小解;

 未完待续……

 

posted @ 2018-07-02 09:33  S-Royal  阅读(153)  评论(0编辑  收藏  举报