Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1 @@
from fractions import gcd

View file

@ -0,0 +1 @@
from math import gcd

View file

@ -0,0 +1,4 @@
def gcd_iter(u, v):
while v:
u, v = v, u % v
return abs(u)

View file

@ -0,0 +1,2 @@
def gcd(u, v):
return gcd(v, u % v) if v else abs(u)

View file

@ -0,0 +1,23 @@
def gcd_bin(u, v):
u, v = abs(u), abs(v) # u >= 0, v >= 0
if u < v:
u, v = v, u # u >= v >= 0
if v == 0:
return u
# u >= v > 0
k = 1
while u & 1 == 0 and v & 1 == 0: # u, v - even
u >>= 1; v >>= 1
k <<= 1
t = -v if u & 1 else u
while t:
while t & 1 == 0:
t >>= 1
if t > 0:
u = t
else:
v = -t
t = u - v
return u * k