pythonは再帰と非再帰を実現して2つの数の最大公約数、最小公倍数を求めます
1438 ワード
最大公約数と最小公倍数の概念はみんなよく知っていて、ここではあまり言わないで、今日はこれは問題をする時に出会ったので記録として書いて、他の人を助けたいと思っています.次はコードです.
結果は次のとおりです.
12 4 6 Number is wrong!!! None ---------------------------------------------------------------------------- 12 4 2 ---------------------------------------------------------------------------- 12 4
#!/usr/bin/env python
#coding:utf-8
from fractions import gcd
#
def gcd_test_one(a, b):
if a!=0 and b!=0:
if a>b:
a, b=b, a
if b%a==0:
return a
gcd_list=[]
for i in range(1,a):
if b%i==0 and a%i==0:
gcd_list.append(i)
return max(gcd_list)
else:
print 'Number is wrong!!!'
#
def gcd_test_two(a, b):
if a>b:
a, b=b, a
if b%a==0:
return a
else:
return gcd_test_two(a,b%a)
#python gcd
def gcd_test_three(a, b):
return gcd(a,b)
if __name__ == '__main__':
print gcd_test_one(12,24)
print gcd_test_one(12,8)
print gcd_test_one(6,24)
print gcd_test_one(0,24)
print '----------------------------------------------------------------------------'
print gcd_test_two(12,24)
print gcd_test_two(12,8)
print gcd_test_two(6,32)
print '----------------------------------------------------------------------------'
print gcd_test_three(12,24)
print gcd_test_three(12,8)
結果は次のとおりです.
12 4 6 Number is wrong!!! None ---------------------------------------------------------------------------- 12 4 2 ---------------------------------------------------------------------------- 12 4