import timeit
import sys
def fib(n):
a,b = 0,1
for _ in range(n):
a,b = b,a+b
return b
setup = '''
def gcd(a, b):
"""Calculate the Greatest Common Divisor of a and b.
Unless b==0, the result will have the same sign as b (so that when
b is divided by it, the result comes out positive).
"""
while b:
a, b = b, a%b
return a
'''
numbers = (fib(100),fib(101))
print timeit.timeit('gcd(%d, %d)'%numbers, setup=setup,number=100000)
print timeit.timeit('gcd(%d, %d)'%numbers, setup = 'gcd = lambda a,b : a if not b else gcd(b, a % b)',number=100000)
aW1wb3J0IHRpbWVpdAppbXBvcnQgc3lzCmRlZiBmaWIobik6CiAgICBhLGIgPSAwLDEKICAgIGZvciBfIGluIHJhbmdlKG4pOgogICAgICAgIGEsYiA9IGIsYStiCiAgICByZXR1cm4gYgogICAgCgpzZXR1cCA9ICcnJwpkZWYgZ2NkKGEsIGIpOgogICAgIiIiQ2FsY3VsYXRlIHRoZSBHcmVhdGVzdCBDb21tb24gRGl2aXNvciBvZiBhIGFuZCBiLgoKICAgIFVubGVzcyBiPT0wLCB0aGUgcmVzdWx0IHdpbGwgaGF2ZSB0aGUgc2FtZSBzaWduIGFzIGIgKHNvIHRoYXQgd2hlbgogICAgYiBpcyBkaXZpZGVkIGJ5IGl0LCB0aGUgcmVzdWx0IGNvbWVzIG91dCBwb3NpdGl2ZSkuCiAgICAiIiIKICAgIHdoaWxlIGI6CiAgICAgICAgYSwgYiA9IGIsIGElYgogICAgcmV0dXJuIGEKJycnCm51bWJlcnMgPSAoZmliKDEwMCksZmliKDEwMSkpCnByaW50IHRpbWVpdC50aW1laXQoJ2djZCglZCwgJWQpJyVudW1iZXJzLCBzZXR1cD1zZXR1cCxudW1iZXI9MTAwMDAwKQpwcmludCB0aW1laXQudGltZWl0KCdnY2QoJWQsICVkKSclbnVtYmVycywgc2V0dXAgPSAnZ2NkID0gbGFtYmRhIGEsYiA6IGEgaWYgbm90IGIgZWxzZSBnY2QoYiwgYSAlIGIpJyxudW1iZXI9MTAwMDAwKQo=