概述
今天将同余模定理重新好好看了一下。
同余模定理
所谓的同余,顾名思义,就是许多的数被一个数d去除,有相同的余数。d数学上的称谓为模。如a=6,b=1,d=5,则我们说a和b是模d同余的。因为他们都有相同的余数1。
有很多定理,但是我们只需要用到两个,其余的太过简单就不再叙述。
应用:
• (a+b)%c=(a%c+b%c)%c;
• (a*b)%c=(a%c*b%c)%c;
对于大数的求余,联想到进制转换时的方法,得到
举例如下,设大数 m=1234,模n
首先:
① (1*10)%n+2%n)%n=(10+2)%n
②((1*10)%n+2%n)%n*10%n=(12%n*10%n)=(12*10)%n
以此类推
就等于((((1*10)%n+2%n)%n*10%n+3%n)%n*10%n+4%n)%n
大数求余的简单模板:
#include<cstdio>
char num[10000];
int main()
{
int n,i;
while(scanf("%s%d",num,&n)!=EOF)
{
int ans=0;
for(i=0;num[i]!='