Dies ist mein Code bisher.LCM und GCD 3 Nummer - Python
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)))
Mein Problem ist, dass die 3-stellige findet nur ein gemeinsames Vielfaches nicht der niedrigste dieser 10, 5, 8 400 anstelle eines möglichen 40. macht Jede Hilfe wäre nützlich sein!
Neuer Code Dank
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)))
Eine andere Sache zu beschneiden, Gibt es einen anderen Weg, um Code zu markieren, anstatt 4 Räume in vor jeder Zeile hinzufügen zu müssen. Dank
Dies ist nicht Ihr tatsächlicher Code, oder Sie erwähnen Ihre Fehler nicht. 'math.gcd' nimmt nur zwei Argumente, also würde 'a = gcd (x, y, z)' mit 'TypeError' absterben. In jedem Fall verkomplizieren Sie die Dinge. Schreiben Sie einfach eine LCM-Funktion mit zwei Zahlen und [Sie können damit eine 'n'-Nummer LCM-Funktion trivial implementieren] (http://stackoverflow.com/q/147515/364696). – ShadowRanger
... und * stirbt * mit diesem Fehler. – Prune