(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
数学上,当两个整数除以同一个正整数,若得相同余数,则二整数同余。同余理论常被用于数论中。最先引用同余的概念与“≡”符号者为德国数学家高斯。
同余符号
两个整数
,
,若它们除以正整数
所得的余数相等,则称
,
对于模
同余
记作
读作
同余于
模
,或读作
与
关于模
同余。
比如
。
同余于的符号是同余相等符号 ≡。统一码值为 U+2261。但因为方便理由,人们有时会把它(误)写为普通等号 (=)。
整除性
(即是说 a 和 b 之差是 m 的倍数)
换句话说,
[注 1]
传递性

保持基本运算

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

除法原理
欧拉定理

威尔逊定理

整除多项式
例子
- 求自然数a的个位数字,就是求a与哪一个数对于模10同余。
。-
注释[编辑]




![\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]}](http://upload.wikimedia.org/math/7/a/c/7ac195605b5ea5cc8dc46b95e1e8f4b2.png)
,而
整除
表示 m 能
表示
的
表示
503

被折叠的 条评论
为什么被折叠?



