bintou老师的第一次作业

本文详细介绍了使用C语言实现迭代版本的乘法和除法算法,包括定理证明和GCD(最大公约数)及EGCD(扩展欧几里得算法)的编程实现,以及如何利用这些算法计算与给定数互素的数的数量,以及Bezout定理的应用。
摘要由CSDN通过智能技术生成

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值