基本运算
取模(mod)取余(rem)
定义
- 给定一个正整数p,任意一个整数n,一定存在等式 :
- n = kp + r ;
- 其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。
- 对于正整数 p 和整数 a,b,定义如下运算:
- 取模运算:a % p(或a mod p),表示a除以p的余数。
- 模p加法: a+b算术和除以p的余数。(a + b) % p = (a % p + b % p) % p
- 模p减法: a-b算术差除以p的余数。(a - b) % p = (a % p - b % p) % p
- 模p乘法: ab算术乘法除以p的余数。(a b) % p = (a % p * b % p) % p
由以上定义易证欧几里得算法的正确性
- 定义(n,p)为n和p的最大公约数,要证明欧几里得算法正确性即证明(n,p)=(p,r);
- 设n,p的公因数为g,则g|n且g|p,由n = kp + r 得到g|r('|'为整除);
- 则n和p的最大公约数也是p和r的最大公约数.
取模和取余的区别
对于整型数a,b来说,取模运算或者取余运算的方法都是:
- 求 整数商: c = a/b;
- 计算模或者余数: r = a - c*b.
求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入,而取模运算在计算c的值时,向负无穷方向舍入。
例如:
- 10 mod(-4)=-3
- 10 rem(-4)=-2
归纳:
- 当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。
- 当符号不一致时,结果不一样。求模运算结果的符号和b一致,求余运算结果的符号和a一致。
整除
若a除以b(b不等于0,a、b都为整数),商为整数且余数为0,则叫做a能