Trong chương trình này, bạn sẽ học cách tìm LCM của hai số và hiển thị nó.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Python sau:
- Python trong khi vòng lặp
- Chức năng Python
- Đối số chức năng Python
- Các chức năng do người dùng định nghĩa
Nhiều số ít nhất [L.C.M.] của hai số là số nguyên dương nhỏ nhất hoàn toàn chia hết bởi hai số đã cho.
Ví dụ, L.C.M. của 12 và 14 là 84.
Chương trình tính toán LCM
# Python Program to find the L.C.M. of two input number
def compute_lcm[x, y]:
# choose the greater number
if x > y:
greater = x
else:
greater = y
while[True]:
if[[greater % x == 0] and [greater % y == 0]]:
lcm = greater
break
greater += 1
return lcm
num1 = 54
num2 = 24
print["The L.C.M. is", compute_lcm[num1, num2]]
Đầu ra
The L.C.M. is 216
Lưu ý: Để kiểm tra chương trình này, hãy thay đổi các giá trị của ____10 và The L.C.M. is 216
1. To test this program, change the values of
The L.C.M. is 2160 and
The L.C.M. is 2161.
Chương trình này lưu trữ hai số trong
The L.C.M. is 2160 và
The L.C.M. is 2161 tương ứng. Những con số này được chuyển đến hàm
The L.C.M. is 2164. Hàm trả về L.C.M của hai số.
Trong hàm, trước tiên chúng tôi xác định số lượng lớn hơn của hai số kể từ L.C.M. Chỉ có thể lớn hơn hoặc bằng số lớn nhất. Sau đó, chúng tôi sử dụng một vòng lặp
The L.C.M. is 2165 vô hạn để đi từ số đó và hơn thế nữa.
Trong mỗi lần lặp, chúng tôi kiểm tra xem cả hai con số hoàn toàn chia số của chúng tôi. Nếu vậy, chúng tôi lưu trữ số dưới dạng L.C.M. và thoát khỏi vòng lặp. Mặt khác, số được tăng thêm 1 và vòng lặp tiếp tục.
Chương trình trên chậm hơn để chạy. Chúng ta có thể làm cho nó hiệu quả hơn bằng cách sử dụng thực tế là sản phẩm của hai số bằng với sản phẩm của số ước số phổ biến nhất và lớn nhất của hai số đó.
Number1 * Number2 = L.C.M. * G.C.D.
Đây là một chương trình Python để thực hiện điều này.
Chương trình tính toán LCM bằng GCD
# Python program to find the L.C.M. of two input number
# This function computes GCD
def compute_gcd[x, y]:
while[y]:
x, y = y, x % y
return x
# This function computes LCM
def compute_lcm[x, y]:
lcm = [x*y]//compute_gcd[x,y]
return lcm
num1 = 54
num2 = 24
print["The L.C.M. is", compute_lcm[num1, num2]]
Đầu ra của chương trình này giống như trước đây. Chúng tôi có hai chức năng
The L.C.M. is 2166 và
The L.C.M. is 2164. Chúng tôi yêu cầu G.C.D. của các số để tính toán L.C.M.
Vì vậy,
The L.C.M. is 2164 gọi hàm
The L.C.M. is 2166 để thực hiện điều này. G.C.D. của hai số có thể được tính toán hiệu quả bằng thuật toán Euclide.
Nhấn vào đây để tìm hiểu thêm về các phương pháp để tính toán G.C.D trong Python.
65
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi hiện đang sử dụng một hàm chấp nhận hai số và sử dụng một vòng lặp để tìm bội số ít phổ biến nhất của các số đó,
def lcm[x, y]:
"""This function takes two
integers and returns the L.C.M."""
# Choose the greater number
if x > y:
greater = x
else:
greater = y
while[True]:
if[[greater % x == 0] and [greater % y == 0]]:
lcm = greater
break
greater += 1
return lcm
Có một mô-đun tích hợp trong Python thay vì viết một chức năng tùy chỉnh?
Hỏi ngày 6 tháng 8 năm 2018 lúc 23:33Aug 6, 2018 at 23:33
0
Trong Python 3,8 và sớm hơn
Không có thứ như vậy được xây dựng vào stdlib.
Tuy nhiên, có một chức năng ước số chung lớn nhất trong thư viện
Number1 * Number2 = L.C.M. * G.C.D.0. .
def lcm[a, b]:
return abs[a*b] // math.gcd[a, b]
Hoặc, nếu bạn đang sử dụng Numpy, nó sẽ đi kèm với chức năng
Number1 * Number2 = L.C.M. * G.C.D.2 trong một thời gian khá lâu.
Mark Amery
133K78 Huy hiệu vàng395 Huy hiệu bạc443 Huy hiệu Đồng78 gold badges395 silver badges443 bronze badges
Đã trả lời ngày 6 tháng 8 năm 2018 lúc 23:39Aug 6, 2018 at 23:39
ABARNERTABARNERTabarnert
342K45 Huy hiệu vàng574 Huy hiệu bạc652 Huy hiệu Đồng45 gold badges574 silver badges652 bronze badges
2
Trong Python 3.9+
Điều này có sẵn là
Number1 * Number2 = L.C.M. * G.C.D.3. Nó cũng có bất kỳ số lượng đối số nào, cho phép bạn tìm ra bội số chung thấp nhất của hơn 2 số nguyên.
Ví dụ:
>>> from math import lcm
>>> lcm[2, 5, 7]
70
Đã trả lời ngày 23 tháng 3 năm 2020 lúc 22:26Mar 23, 2020 at 22:26
OrangutanorangutanOrangutan
9909 Huy hiệu bạc15 Huy hiệu Đồng9 silver badges15 bronze badges
Thay vào đó hãy thử điều này:
def lcm[x, y]:
from fractions import gcd # or can import gcd from `math` in Python 3
return x * y // gcd[x, y]
Đã trả lời ngày 6 tháng 8 năm 2018 lúc 23:37Aug 6, 2018 at 23:37
Tim Peterstim PetersTim Peters
64,8K12 Huy hiệu vàng122 Huy hiệu bạc129 Huy hiệu đồng12 gold badges122 silver badges129 bronze badges
5
Để đơn giản hóa mã của bạn một chút:
def lcm[x, y]:
for currentPossibleLCM in range[max[x,y], [x*y]+1]
if[[currentPossibleLCM % x == 0] and [currentPossibleLCM % y == 0]]:
return currentPossibleLCM
Thời gian chạy: O [x*y]
Đã trả lời ngày 9 tháng 3 năm 2020 lúc 22:22Mar 9, 2020 at 22:22
Satbir Kirasatbir KiraSatbir Kira
7426 Huy hiệu bạc20 Huy hiệu Đồng6 silver badges20 bronze badges
Điều này không chỉ dành cho hai số cụ thể mà là tìm LCM của một loạt các số nguyên. [mà không sử dụng math.lcm []]
import math
from functools import reduce
def lcm[arr]:
l=reduce[lambda x,y:[x*y]//math.gcd[x,y],arr]
return l
Đã trả lời ngày 26 tháng 12 năm 2021 lúc 19:30Dec 26, 2021 at 19:30