c语言带有负数的求模运算

Python018

c语言带有负数的求模运算,第1张

首先你的理解就是错误的

c或者c++里面对于负数取模是有规则的

规则一:

余数和除数同号

规则二:

|余数|

<

|被除数|

基于这两个规则,

(-19)

%

26

应该商0余-19

取模运算:a % p(或a mod p),表示a除以p的余数。

比如给定一个正整数p,任意一个整数n,一定存在等式 :n = kp + r ;其中 k、r 是整数,且 0 ≤ r <p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。

取模运算的规则如下:

1、(a + b) % p = (a % p + b % p) % p 。

2、(a - b) % p = (a % p - b % p) % p 。

3、(a * b) % p = (a % p * b % p) % p 。

4、a ^ b % p = ((a % p)^b) % p 。

扩展资料:

取模运算在c语言中的应用范围:

1、判别奇偶数

奇偶数的判别是模运算最基本的应用,也非常简单。已知一个整数n对2取模,如果余数为0,则表示n为偶数,否则n为奇数。

2、判别素数

一个数,如果只有1和它本身两个因数,这样的数叫做质数(或素数)。例如 2,3,5,7 是质数,而 4,6,8,9 则不是,后者称为合成数或合数。用不比该自然数的平方根大的正整数去除这个自然数,若该自然数能被整除,则说明其非素数。

3、求最大公约数

求最大公约数最常见的方法是欧几里德算法(又称辗转相除法),其计算原理依赖于定理:gcd(a,b) = gcd(b,a mod b)。

参考资料来源:百度百科:取模运算