数论初步(一)

来源:互联网 发布:地图数据采集是什么 编辑:程序博客网 时间:2024/05/23 02:06

数论学习(一)

素数筛法 //注意i*i可能会爆int,故用long long。

void get_prime(int n){    mset(visit, 0);    cnt = 0;    for(int i = 2; i <= n; i ++){        if(!visit[i]){            prime[cnt++] = i;            for(long long j = (long long)i * i; j <= n; j += i) visit[j] = 1;//注意long long        }    }}

最大公约数

ll gcd(ll a, ll b){    return b == 0 ? a : gcd(b, a % b);}

最小公倍数 // 注意必须先除再乘,不然爆int,最小公倍数容易灰常大的。通常用long long

ll lcm(ll a, ll b){    return a / gcd(a, b) * b;}

中国剩余定理

令任意固定整数为M,当M/A余a,M/B余b,M/C余c,M/D余d,…,M/Z余z时,这里的A,B,C,D,…,Z为除数,除数为任意自然数(如果为0,没有任何意义,如果为1,在孙子定理中没有计算和探讨的价值,所以,不包括0和1)时;余数a,b,c,d,z为自然整数时。
1、当命题正确时,在这些除数的最小公倍数内有解,有唯一的解,每一个最小公倍数内都有唯一的解;当命题错误时,在整个自然数范围内都无解。
2、当M在两个或两个以上的除数的最小公倍数内时,这两个或两个以上的除数和余数可以定位M在最小公倍数内的具体位置,也就是M的大小。
3、正确的命题,指没有矛盾的命题:分别除以A,B,C,D,…,Z不同的余数组合个数=A,B,C,D,…,Z的最小公倍数=不同的余数组合的循环周期.

0 0
原创粉丝点击