1.用 C 语言编程实现一种迭代版本的简单乘法。
2.给出定理1.1(除法算法)的完整证明
·①存在性
构造集合 S={a-kb : k∈Z 同时 a-kb>=0}。
可知,S为非空集合。由良序原则,存在一个最小元r∈S,同时r=a-qb。因此,a=qb+r,r>=0。因为r是最小元,a和b是常数,所以q为k可取的最大值。设R=a-(q+1)b,当q=q+1时,R<r,又因为r>=0,所以R不能是比r小的非负数,否则r将不是最小元,所以R<0。将R=a-(q+1)b与r=a-qb联立可得:R=r-b。即r-b<0,r<b。
·②唯一性
由r=a-qb得:r=-qb+a 因为a和b是常数,所以该函数单调递减,所以只存在唯一一对q和r。
3.用 C 语言编程实现一种迭代版本的gcd算法和一种egcd算法。利用gcd算法,写程序完成以下函数的功能。输入:一个正整数n;输出:大于等于1,小于n,且与n互素的正整数的个数。
gcd:
egcd:
程序实现功能:
4.第二章第六题:
证:由Bezout定理,gcd(a,b)=ar+bs. g^ar≡1^r(modm),g^bs≡1^s(modm),so g^ar * g^bs=1^r *1^s(mode)=1(modm).
第八题:
证:由Bezout定理,gcd(a,b)=ar+bs,so d=ar+bs,由gcd(a/d,b/d)=1, 可得ar/d+bs/d=1,代入d,ar+bs/ar+bs=1,即gcd(a/d,b/d)=1.