首页 > 试题广场 >

最大公约数

[编程题]最大公约数
  • 热度指数:2676 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小易学习了辗转相除法之后,就开始实践这个算法在求解最大公约数上。
牛牛给小易出了一道不同寻常的求解最大公约数: 求解a和b的最大公约数,但是a和b的范围特别大。
小易遇到了困难,向聪明的你寻求帮助,希望你能帮帮他。

输入描述:
第一行数字a,第二行数字b。


输出描述:
一行一个数字表示答案
示例1

输入

6
4

输出

2
示例2

输入

7951346523609888
6998915114363550

输出

1013754
import numpy as np
a_temp = int(input())
b_temp = int(input())
a = max(a_temp, b_temp)
b = min(a_temp, b_temp) while np.mod(a,b) != 0:
    temp = a % b
    a = b
    b = temp  print(b)  
想请问大家为什么用numpy之后报错呢?  错误信息是:请检查是否存在语法错误或者数组越界非法访问等情况

把np.mod(a, b) 换成 a%b 就可以通过。有人知道原因吗?
编辑于 2020-07-23 21:38:21 回复(0)
a_temp = int(input())
b_temp = int(input())

a = max(a_temp, b_temp)
b = min(a_temp, b_temp)

while a % b != 0:
    temp = a % b
    a = b
    b = temp

print(b)
编辑于 2020-04-10 23:31:34 回复(2)