1.1数论(持续更新ing)

本文介绍了数论的基本概念,包括整除、同余、最大公约数(GCD)和最小公倍数(LCM),以及数论在快速幂取模、线性同余方程和中国剩余定理中的应用。此外,还提及了素数的判定和相关定理,如威尔逊定理和费马定理。
摘要由CSDN通过智能技术生成

在这里插入图片描述
    数论是纯粹数学的分支之一,主要研究整数的性质。整数可以是方程式的解(丢番图方程)。有些解析函数(像黎曼ζ函数)中包括了一些整数、质数的性质,透过这些函数也可以了解一些数论的问题。透过数论也可以建立实数和有理数之间的关系,并且用有理数来逼近实数(丢番图逼近)。按研究方法来看,数论大致可分为初等数论和高等数论。初等数论是用初等方法研究的数论,它的研究方法本质上说,就是利用整数环的整除性质,主要包括整除理论、同余理论、连分数理论。高等数论则包括了更为深刻的数学研究工具。它大致包括代数数论、解析数论、计算数论等等。//引自百度百科

建议搭配食用:我的小目录


1.1 整除

    设a是非零整数,b是整数。如果存在一个整数q,使得b=a*q,那么就说b可被a整除,记作a∣b,且称b是a的倍数,a是b的约数(因子)

    整除具有以下一些性质

  1. 如果a∣b且b∣c,那么a∣c
  2. a∣b且a∣c等价于对任意的整数x和y,有a∣(b×x+c×y)
  3. 设m≠0,那么a∣b等价于(m×a)∣(m×b)
  4. 设整数x和y满足下式:a×x+b×y=1,且a∣n,b∣n,那么(a×b)∣n
    证明略
  5. 若b=q×d+c,那么d∣b的充要条件是d∣c
    (因为一些傻狗原因,这个*不太好用)
    没有例题

1.2 同余

    若a,b为两个整数,且他们的差a-b能被某个自然数m所整除,则称a在%m意义下与b同余,记为a≡b(mod m)。它意味着,a-b=m*k(k为一个整数)

对于整数a,b,c和自然数m,n,对模m同余具有以下性质

  1. 自反性   a≡a(mod m)
  2. 对称性   若a≡b(mod m),则b≡a(mod m)
  3. 传递性   若a≡b(mod m),b≡c(mod m),则a≡c(mod m)
  4. 同加性    若a≡b(mod m),则a+c≡b+c(mod m)
  5. 同乘性   若a≡b(mod m),则a×c≡b×c(mod m);若a≡b(mod m),c≡d(mod m),则a×c≡b×d(mod m)
  6. 同幂性   若a≡b(mod m),则aⁿ≡bⁿ(mod m)
  7. 推论1:  a*b mod k = (a mod k) * (b mod k) mod k
  8. 推论2:  若a mod p = x,a mod q = x,p、q互质,则a mod p*q = x
  9. 同余不满足同除性

例题:洛谷P1226
   快速幂取模
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。

输入输出格式
输入格式:
三个整数b,p,k.

输出格式:
输出“b^p mod k=s”

s为运算结果

输入输出样例
输入样例#1:
2 10 9
输出样例#1:
2^10 mod 9=7

#include <bits/stdc++.h>
using namespace std;
typedef long long ll
ll b,p,k;
ll ans;
ll pow_mod(ll t) {
     if  (t == 1) return b%k;
     ans = Mod(t/2);
     ans = (ans*ans)%k; 
     if  (t%2 == 1) ans = (ans*(b%k))%k;  
     return ans;
}
int main() {
    cin >> b >> p >> k;
    cout << b << '^' << p << " mod " << k << '= '<< pow_mod(p) << endl;
    return 0;
}

这个看一眼推论一就会了⑧


1.3 最大公约数(GCD)

	最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
	求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与
	最大公约数相对应的概念是最小公倍数。

注:a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),a,b的最小公倍数记为[a,b]。(这个写法只有天朝能用哦,老外不认的哦)

1 辗转相除法
原理:GCD(x,y)=GCD(y,y-x)

int GCD(int x,int y) {
	return y == 0 ? x : GCD(y,x%y);
}

2 二进制算法
通过不断去除因子2来降低常数
若x=y,则GCD(x,y)=x,否则
(1) 若x,y均为偶数,则GCD(x,y)=2*GCD(x/2,y/2)
(2) 若x为偶数,y为奇数,则

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值