Блог пользователя kzoacn

Автор kzoacn, история, 7 лет назад, По-английски

I write two code to compute gcd in python3, but math.gcd is much faster than gcd.

Here is my code.

def gcd(a, b): 
	while a:
		a, b = b % a, a
	return b
x, y = map(int, input().split())
print(gcd(x, y))

And another code.

import math
x, y = map(int, input().split())
print(math.gcd(x, y))

What's the implemention of math.gcd? Thanks in advance.

  • Проголосовать: нравится
  • +25
  • Проголосовать: не нравится

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by kzoacn (previous revision, new revision, compare).

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by kzoacn (previous revision, new revision, compare).

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by kzoacn (previous revision, new revision, compare).

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by kzoacn (previous revision, new revision, compare).

»
7 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

I think, maybe math.gcd is speeded by cplusplus to improve its efficiency.

»
7 лет назад, # |
Rev. 2   Проголосовать: нравится +24 Проголосовать: не нравится

Because it is actually a C function. Search for _PyLong_GCD in this.