Программа на python для поиска hcf и lcm
Я написал следующий програн в python, чтобы узнать hcf и lcm двух чисел a и b. x - большее из двух чисел, а y - меньшее, оба из которых я собираюсь найти в верхней части программы. позже они будут использованы для поиска hcf и lcm.but, но когда я запусту его, он затеняет x красным. Я не могу понять причину.
a,b=raw_input("enter two numbers (with space in between: ").split()
if (a>b):
int x==a
else:
int x==b
for i in range (1,x):
if (a%i==0 & b%i==0):
int hcf=i
print ("hcf of both is: ", hcf)
for j in range (x,a*b):
if (j%a==0 & j%b==0):
int lcm=j
print ("lcm of both is: ", lcm)
этот алгоритм поиска lcm, hcf прекрасно работает в c, поэтому я не думаю, что с алгоритмом должна быть проблема. это может быть какая-то проблема синтаксиса.
3 ответа
Решение
import sys
a = int(sys.argv[1])
b = int(sys.argv[2])
sa = a
sb = b
r = a % b
while r != 0:
a, b = b, r
r = a % b
h = b
l = (sa * sb) / h
print('a={},b={},hcf={},lcm={}\n'.format(sa,sb,h,l))
a, b =input("enter two numbers (with space in between: ").split()#converted the previous answer into python because it still had runtime errors
a = int(a) # Convert from strings to integers
b = int(b)
if a > b:
x = a
else:
x = b
for i in range(1, x):
if a % i == 0 and b % i==0:
hcf = i
print("hcf of both is: ", i)
for j in range(x, a * b):
if j % a == 0 and j % b == 0:
lcm = j
break # stop as soon as a match is found
print("lcm of both is: ", j)
Вы почти все сделали правильно, но существует ряд проблем с синтаксисом Python, над которыми нужно поработать:
a, b = raw_input("enter two numbers (with space in between: ").split()
a = int(a) # Convert from strings to integers
b = int(b)
if a > b:
x = a
else:
x = b
for i in range(1, x):
if a % i == 0 and b % i==0:
hcf = i
print "hcf of both is: ", hcf
for j in range(x, a * b):
if j % a == 0 and j % b == 0:
lcm = j
break # stop as soon as a match is found
print "lcm of both is: ", lcm
Протестировано с использованием Python 2.7.6
Программа для поиска LCM и HCF
a=int(input("Enter the value of a:"))
b=int(input("Enter the value of b:"))
if(a>b):
x=a
else:
x=b
for i in range(1,x+1):
if(a%i==0)and(b%i==0):
hcf=i
print("The HCF of {0} and {1} is={2}".format(a,b,hcf));
for j in range(x,a*b):
if(j%a==0)and(j%b==0):
lcm=j
break
print("The LCM of {0} and {1} is={2}".format(a,b,lcm));