算法导论学习_数论
1>gcd(0,a)=|a|;0 和任意一个不为0的整数的最大公约数都为该数的绝对值,因为0除以任何一个不为0的整数都得0。
2>练习31.1-5
由n|ab 推出
存在 K,使得 ab=nK;
gcd(a,n)=1 推出 存在 u,v,使得 ua+vn=1;
对上式两端同时乘以b,有
uab+vnb=b;
代入第一式有:unK+vnb=b;
即 n(uK+vb)=b
所以 n|b
3>练习31.1-11 证明:大于1的自然数必可写成质数的乘积。
用反证法:假设存在大于1的自然数不能写成质数的乘积,把最小的那个称为n。
自然数可以根据其可除性(是否能表示成两个不是自身的自然数的乘积)分成3类:质数、合数和1。首先,按照定义,n大于1。其次,n不是质数,因为质数p可以写成质数乘积:p=p,这与假设不相符合。因此n只能是合数,但每个合数都可以分解成两个严格小于自身而大于1的自然数的积。设其中a和b都是介于1和n之间的自然数,因此,按照n的定义,a和b都可以写成质数的乘积。从而n也可以写成质数的乘积。由此产生矛盾。因此大于1的自然数必可写成质数的乘积。
4>负数可以求模取余
两个正数的求模运算结果是正数,
两个负数的求模运算结果是负数.
一正一负的话取决于"分子"的符号.
5%3=2
(-5)%3=-2
5%(-3)=2
(-5)%(-3)=-2
5>31.1-2 证明:有无穷多个素数
假设素数有穷,设最大的素数为A,那么我们再构造一个数b=2*3*5*7*~~~~A+1;
那么这个b一定是合数,但是它不能被所有的素数整除,于是他也是一个素数,与假设矛盾
,所以素数有无穷个
6>