Hướng dẫn gcd and lcm in python using recursion - gcd và lcm trong python sử dụng đệ quy

Đây là một chương trình Python để tìm GCD của hai số sử dụng đệ quy.

Mô tả vấn đề

Chương trình lấy hai số và tìm GCD của hai số sử dụng đệ quy.

Giải pháp vấn đề

1. Lấy hai số từ người dùng. 2. Chuyển hai số làm đối số cho một hàm đệ quy. 3. Khi số thứ hai trở thành 0, hãy trả lại số thứ nhất. 4. 5. Trả về số đầu tiên là GCD của hai số. 6. In GCD. 7. Thoát.
2. Pass the two numbers as arguments to a recursive function.
3. When the second number becomes 0, return the first number.
4. Else recursively call the function with the arguments as the second number and the remainder when the first number is divided by the second number.
5. Return the first number which is the GCD of the two numbers.
6. Print the GCD.
7. Exit.

Chương trình/mã nguồn

Dưới đây là mã nguồn của chương trình Python để tìm GCD của hai số sử dụng đệ quy. Đầu ra chương trình cũng được hiển thị dưới đây.

def gcd(a,b):
    if(b==0):
        return a
    else:
        return gcd(b,a%b)
a=int(input("Enter first number:"))
b=int(input("Enter second number:"))
GCD=gcd(a,b)
print("GCD is: ")
print(GCD)

Giải thích chương trình

1. Người dùng phải nhập hai số. 2. Hai số được truyền dưới dạng đối số cho hàm đệ quy. 3. Khi số thứ hai trở thành 0, số thứ nhất được trả về. 4. Khác chức năng được gọi đệ quy với các đối số là số thứ hai và phần còn lại khi số thứ nhất được chia cho số thứ hai. 5. Số đầu tiên sau đó được trả về, đó là GCD của hai số. 6. GCD sau đó được in.
2. The two numbers are passed as arguments to a recursive function.
3. When the second number becomes 0, the first number is returned.
4. Else the function is recursively called with the arguments as the second number and the remainder when the first number is divided by the second number.
5. The first number is then returned which is the GCD of the two numbers.
6. The GCD is then printed.

Trường hợp kiểm tra thời gian chạy

 
Case 1:
Enter first number:5
Enter second number:15
GCD is: 
5
 
Case 2:
Enter first number:30
Enter second number:12
GCD is: 
6

Sê -ri Giáo dục & Học tập toàn cầu Sanfoundry - Chương trình Python.

Để thực hành tất cả các chương trình Python, đây là bộ hoàn thành hơn 150 vấn đề và giải pháp Python.

Bước tiếp theo:

  • Nhận Giấy chứng nhận miễn phí trong chương trình Python
  • Tham gia cuộc thi chứng nhận lập trình Python
  • Trở thành một người xếp hạng hàng đầu trong chương trình Python
  • Thực hiện các bài kiểm tra lập trình Python
  • Các bài kiểm tra thực hành theo chương: Chương 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10
  • Các bài kiểm tra giả chương: Chương 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10,

Hướng dẫn gcd and lcm in python using recursion - gcd và lcm trong python sử dụng đệ quy

Manish Bhojasia, một cựu chiến binh công nghệ với hơn 20 năm @ Cisco & Wipro, là người sáng lập và CTO tại Sanfoundry. Ông sống ở Bangalore, và tập trung vào sự phát triển của nhân Linux, Công nghệ San, Cvanced C, Cấu trúc dữ liệu & Alogrithms. Giữ kết nối với anh ta tại LinkedIn.Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Đăng ký các lớp học chính miễn phí của mình tại YouTube & Thảo luận kỹ thuật tại Telegram SanfoundryClasses.

EDIT: Tôi đã không đọc phần đệ quy / một bit trong câu hỏi của bạn vì tôi ngu ngốc. Kết hợp ngay bây giờ.: I didn't read the recursive / one function bit in your question cause I'm dumb. Incorporated now.


LCM không phải là a * b / lcm(a, b), đó là a * b / gcd(a, b) (ước số chung lớn nhất).

Vì vậy, cách sạch nhất để làm điều này là:

def gcd(x, y):
    while y:      
        x, y = y, x % y
    return x

def lcm(x, y):
    return x * y / gcd(x, y)

Nếu bạn chỉ giới hạn trong đệ quy (ví dụ: đối với một bài kiểm tra) thì điều này không phải hiệu quả, vì vậy bạn cũng có thể đếm ngược cho đến khi bạn tìm thấy số thấp nhất mà cả X và Y đã chia thành:

def lcm(x, y, counter=1):
    if (counter%x == 0 and counter%y == 0):
        return counter
    return lcm(x, y, counter+1)

Điều đó chỉ tăng bộ đếm cho đến khi counter%x == 0 and counter%y == 0 là đúng, đó là LCM. Mặc dù vậy, đừng thử với số lượng lớn, bạn sẽ chỉ có một luồng tràn.


Giả sử chúng ta có hai số a và b. Chúng ta phải tìm GCD của hai số này theo cách đệ quy. Để có được GCD, chúng tôi sẽ sử dụng thuật toán Euclide.

Vì vậy, nếu đầu vào giống như a = 25 b = 45, thì đầu ra sẽ là 5

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -

  • Xác định một hàm gcd (). Cái này sẽ mất một, b
  • Nếu A giống như B, thì
    • trả lại a
  • nếu không thì khi A
  • Trả lại GCD (B, A)
  • otherwise,
    • Trả về GCD (B, A - B)
  • Thí dụ

    Hãy cho chúng tôi xem việc thực hiện sau đây để hiểu rõ hơn -

    def gcd(a, b):
       if a == b:
          return a
       elif a < b:
          return gcd(b, a)
       else:
          return gcd(b, a - b)
    
    a = 25
    b = 45
    print(gcd(a, b))

    Đầu vào

    25, 45
    

    Đầu ra

    5

    Hướng dẫn gcd and lcm in python using recursion - gcd và lcm trong python sử dụng đệ quy

    Cập nhật vào ngày 12 tháng 10 năm 2021 08:11:17

    • Câu hỏi và câu trả lời liên quan
    • Chương trình Java để tìm GCD của hai số
    • Tìm GCD của hai số
    • GCD có nhiều hơn hai số (hoặc mảng) trong chương trình Python
    • Chương trình Python cho GCD của nhiều hơn hai (hoặc mảng)
    • Chương trình tìm GCD hoặc HCF của hai số trong C ++
    • Chương trình Java để tìm GCD hoặc HCF của hai số
    • GCD và LCM của hai số trong Java
    • Chương trình C ++ để tìm GCD của hai số bằng thuật toán Euclid đệ quy
    • Chương trình C ++ cho GCD của nhiều hơn hai (hoặc mảng)?
    • Chương trình Java cho GCD của nhiều hơn hai (hoặc mảng)
    • Chương trình C ++ cho GCD 0.Of nhiều hơn hai (hoặc mảng)?
    • Chương trình tìm GCD hoặc HCF của hai số sử dụng thủ tục trường trung học trong C ++
    • Chương trình tìm GCD số điểm nổi trong C ++
    • C chương trình để tìm GCD của các số bằng hàm đệ quy
    • Thiết kế một TM để tính toán bổ sung hai số chưa được

    Làm thế nào để bạn tìm thấy LCM bằng cách sử dụng đệ quy trong Python?

    Chương trình Python để tìm LCM của hai số sử dụng đệ quy..
    Lấy hai số từ người dùng ..
    Khởi tạo nhiều biến với giá trị tối đa trong số hai số đã cho ..
    Kiểm tra xem nhiều biến có phân chia rõ ràng cả số hay không ..
    Nếu có, sau đó kết thúc quá trình và trả về bội số là LCM ..

    Làm thế nào để bạn tìm thấy LCM và GCD trong Python?

    Chúng tôi có hai hàm compute_gcd () và compute_lcm ().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, compute_lcm () gọi hàm compute_gcd () để 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.compute_gcd() and compute_lcm() . We require G.C.D. of the numbers to calculate its L.C.M. So, compute_lcm() calls the function compute_gcd() to accomplish this. G.C.D. of two numbers can be calculated efficiently using the Euclidean algorithm.

    Làm thế nào để bạn tìm thấy GCD đệ quy trong Python?

    Giả sử chúng ta có hai số a và b.Chúng ta phải tìm GCD của hai số này theo cách đệ quy ...
    Xác định một hàm gcd ().Điều này sẽ mất một, B ..
    Nếu A giống như B, thì.trả lại a ..
    nếu không thì khi A
    Nếu không, trả lại GCD (B, A - B).

    GCD sử dụng đệ quy là gì?

    GCD của hai số sử dụng đệ quy Nhập hai số nguyên dương: 366 60 G.C.D của 366 và 60 là 6. Trong chương trình này, các cuộc gọi đệ quy được thực hiện cho đến khi giá trị của N2 bằng 0.recursive calls are made until the value of n2 is equal to 0.