使用python实现简单的欧几里得算法

欧几里得算法的原理:

① X←a;Y←b;

② 如果Y=0,则输出X=gcd(a, b);

③ R←X (mod Y);

④ X←Y;

⑤ Y←R;

⑥ 转到②。

例如:a = 3371 ,b = 1435 ,gcd(a,b)

过程如下:

3371 = 1435 + 501
1435 = 501 + 433
501 = 433 + 68
433 = 68 + 25
68 = 25 + 18
25 = 18 + 7
18 = 7 + 4
7 = 4 + 3
4 = 3 + 1
3 = 1 + 0

根据欧几里得算法原理,编写代码如下:

#欧几里得算法
'''
原理:
①  X←a;Y←b;
②  如果Y=0,则输出X=gcd(a, b);
③  R←X (mod Y);
④  X←Y;
⑤  Y←R;
⑥  转到②。
'''
#核心算法
def assignment(a,b):
    x = a ; y = b
    while y:
        temp = x
        r = x % y
        x = y
        y = r
        print("%d = %d + %d"%(temp,x,y))  #给出每次计算的步骤,不要可以删除
    return x

a = 3371    # 指定数字,如果要更改可以自行 input
b = 1435
print("过程:")
x = assignment(int(a),int(b))
print()
print("gcd(%d,%d) = %d "%(a,b,x))

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值