이것은 지금까지 제 코드입니다.LCM 및 GCD 3 - 파이썬
from math import gcd
#3 digit lcm calculation
h=input("(1) 2 Digit LCM Or \n(2) 3 Digit LCM\n :")
if h == "2":
while True:
def lcm(x, y, z):
a = gcd(x, y, z)
num = x
num2 = y * z // a
LCM = num * num2 // a
return LCM
x = int(input("Number 1: "))
y = int(input("Number 2: "))
z = int(input("Number 3: "))
print("The LCM Of " + str(x) + " And " + str(y) + " And " + str(z) + " Is " + str(lcm(x, y, z)))
if h == "1":
while True:
def lcm(x, y):
a = gcd(x, y)
num = x
num2 = y
LCM = num * num2 // a
return LCM
x = int(input("Number 1: "))
y = int(input("Number 2: "))
print("The LCM Of " + str(x) + " And " + str(y) + " Is " + str(lcm(x, y)))
내 문제는 3 자리가 바로 발견 한 것입니다 공통의 배수가 아닌 가장 낮은 등 10, 5, 8 대신에 어떤 도움이 유용 할 것이다 가능한 40 400을 만드는!
새로운 코드 덕분에
from math import gcd
#3 digit lcm calculation
h=input("(1) 2 Digit LCM Or \n(2) 3 Digit LCM\n :")
if h == "2":
while True:
def lcm(x, y, z):
gcd2 = gcd(y, z)
gcd3 = gcd(x, gcd2)
lcm2 = y*z // gcd2
lcm3 = x*lcm2 // gcd(x, lcm2)
return lcm3
x = int(input("Number 1: "))
y = int(input("Number 2: "))
z = int(input("Number 3: "))
print("The LCM Of " + str(x) + " And " + str(y) + " And " + str(z) + " Is " + str(lcm(x, y, z)))
한가지를 자두 맛하려면 대신 라인 각각의 모든 전에 4 공백을 추가 할 필요없이 코드를 표시하는 또 다른 방법이있다.
X * Y = GCD (X, Y) * LCM (: 감사
이것은 실제 코드가 아니거나 오류를 언급하지 않았습니다. 'math.gcd'는 두 개의 인수만을 취하므로'a = gcd (x, y, z)'는'TypeError'로 죽습니다. 어쨌든 당신은 문제를 지나치게 복잡하게 만듭니다. 두 개의 숫자 LCM 함수를 작성하면 [ 'n 개의 숫자 LCM 함수를 쉽게 구현할 수 있습니다] (http://stackoverflow.com/q/147515/364696). – ShadowRanger
... 그리고 그 오류로 죽는다. – Prune