微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数同余定理

(a+b)%c=(a%c+b%c)%c

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring> 
using namespace std;
char a[1000];
int n,i;
int main()
{
	while (~scanf("%s%d",a,&n))
	{
		int m=0;
		int l=strlen(a);
		for (i=0;i<l;i++)
			m=((m*10)%n+(a[i]-'0'))%n;
		cout<<m<<endl;
	}
	return 0;
}


以下转自wiki百科"同余":http://zh.wikipedia.org/wiki/%E5%90%8C%E9%A4%98

数学上,当两个整数以同一个整数,若得相同余数,则二整数同余。同余理论常被用于数论中。最先引用同余的概念与“≡”符号者为德国数学家高斯

同余符号

两个整数

a

b

,若它们除以正整数

m

所得的余数相等,则称

a

b

对于模

m

同余

记作

a \equiv b \pmod{m}

读作

a

同余于

b

m

,或读作

a

b

关于模

m

同余。

比如

26 \equiv 14 \pmod{12}

同余于的符号是同余相等符号 。统一码值为 U+2261。但因为方便理由,人们有时会把它(误)写为普通等号 (=)。

整除性

a \equiv b \pmod{m} \Rightarrow c\cdot m=a-b,c \in \mathbb{Z}

 (即是说 a 和 b 之差是 m 的倍数)
换句话说,

a \equiv b \pmod{m} \Rightarrow m \mid(a-b)

[注 1]

传递性

\left. \begin{matrix}a \equiv b \pmod{m} \\b \equiv c \pmod{m}\end{matrix} \right\} \Rightarrow a \equiv c \pmod{m}

保持基本运算

\left. \begin{matrix}a \equiv b \pmod{m} \\c \equiv d\pmod{m}\end{matrix} \right\} \Rightarrow \left\{ \begin{matrix} a \pm c \equiv b \pm d \pmod{m} \\ ac \equiv bd \pmod{m} \end{matrix} \right.


这性质更可进一步引申成为这样:

a \equiv b \pmod{m} \Rightarrow \begin{cases} an \equiv bn \pmod{m},\forall n \in \mathbb{Z} \\ a^n \equiv b^n \pmod{m},\forall n \in \mathbb{N}^0\end{cases}

除法原理

a \equiv b \pmod{cn} \Rightarrow a \equiv b \pmod n


\left. \begin{matrix} a \equiv b \pmod{m} \\ n|m \end{matrix} \right\} \Rightarrow a \equiv b \pmod n

[注 1]

\left. \begin{matrix} ac \equiv bc \pmod{m} \\ (c,m) = 1 \end{matrix} \right\} \Rightarrow a \equiv b \pmod m

[注 2]

\left. \begin{matrix} a \equiv b \pmod{m_1} \\ a \equiv b \pmod{m_2} \\ \vdots \\ a \equiv b \pmod{m_n} \\ (n \ge 2) \end{matrix} \right\} \Rightarrow a \equiv b \pmod{[m_1,m_2,\cdots,m_n]}

[注 3]

欧拉定理

a^{\varphi (n)} \equiv 1 \pmod{n}

威尔逊定理

(p-1)!\ \equiv\ -1\ (\mbox{mod}\ p)

整除多项式

因为

\binom{t}{k} =\frac{(t)_k}{k!}

,而组合数整数,多项式

(t)_k

整除阶乘k!。

(t)_k \equiv t(t-1)(t-2)\cdots(t-k+1) \equiv 0 (mod k!)

例子

  • 自然数a的个位数字,就是求a与哪一个数对于模10同余。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐