数论,顾名思义,是对整数进行研究的理论。
是数学学科的一个重要分支,也是ACM竞赛题型中饶有趣味的一个部分。
数论,有人戏称为“素论”。
可见对于素数的研究在数论中比重之大。
当然,也有不是对素数操作的算法,在这里我们也将其划归为数论。
一、整数
1.1
1.2
(1)0可以被任何非0数整除
(2)传递性:a | b && b | c <=> a | c.
(3)如果a、b都能被c整除,那么(a+b)或(a-b)也可以被c整除
(4)几个数相乘,如果其中有一个因数能被某一个整除相除,那么它们的积也能被这个数整除。
几个略实用的性质:
(1)能被2整除的数,个位上的数都能被2整除
(2)能被4整除的数,个位和十位所组成的两位数能被4整除
(3)能被8整除的数,百位、十位和个位所组成的三位数能被8整除
(4)能被5整除的数,末尾是0或5
(5)能被25整除的数,十位和个位所组成的两位数能被25整除
(6)能被125整除的数,百位、十位和个位所组成的三位数能被125整除
(7)能被3整除的数,各个数位上的数字之和能被3整除
(8)能被9整除的数,各个数位上的数字和能被 9 整除
(9)如果一个数既能被 2 整除又能被 3 整除,那么这个数能被 6 整除
(10)如果一个数既能被 2 整除又能被 5 整除,那么这个数能被 10 整除(即个位为0)
(11)能被 11 整除的数,奇数位(从左往右数)上的数字和与偶数位上的数字和的差(大数减小数)能被 11 整除
二、最大公约数GCD(greatest common divisor)
2.1
我们称GCD是a和b的最大公约数,(记为GCD = (a, b))
当且仅当:
(i) GCD | a, GCD | b
(ii)若c | a, c | b,则c≤GCD
2.2最小公约数LCM(lowest common multiple)
LCM(a, b) = a / GCD(a, b) * b;
如果写成a * b / GCD(a, b)的话,a*b可能会溢出
2.3
定理1 :
若(a,b) = GCD, 则(a/GCD, b/GCD) = 1
若(a, b) = 1,我们就称a和b互素
定理2(除法算式) :
给定正整数a和b,b≠0,存在唯一的整数q和r(其中0 ≤r<b),
使 a = b*q + r
引理4 :
若 a = b*q + r,则(a, b) = (b, r)
2.4
定理3(欧几里得(Euclid)算法)(辗转相除法) :
若a和b中有一个为负数,我们可以利用
(a, b) = (-a, b) = (a, -b) = (-a, -b)
HDU 1019 Least Common Multiple(最小公倍数)