GCD của n số trong Python sử dụng Đệ quy

//Để tìm GCD của n số bằng cách sử dụng Đệ quy
def gcd[a,b].
if[b==0].
trả lại
khác.
return gcd[b,a%b]
a=int[input["Nhập số đầu tiên. "]]
b=int[input["Nhập số thứ hai. "]]
GCD=gcd[a,b]
print["GCD của ",a, "và" ,b, "là. "]
in[GCD]

Trong chương trình này, chúng tôi sẽ tạo một chương trình python để tính GCD của hai số bằng cách sử dụng đệ quy.  

GCD là ước số chung lớn nhất. Đôi khi, họ có thể yêu cầu bạn viết chương trình cho HCF gồm hai số, vì vậy đừng lo lắng về điều này vì chúng giống nhau.  

Bán tại. GCD của 6 & 9 là 3

Viết chương trình tìm gcd của hai số trong python bằng Recursion

def gcd[a,b]:
    if[b==0]:
        return a;
    return gcd[b,a%b];

str = input["Enter Two Numbers:"]
a, b = str.split[]
a=int[a]
b=int[b]
print[gcd[a,b]];

Đầu ra cho gcd của hai số trong python

 

Nhập hai số. 500 1000
500

Theo thuật toán Euclid,  GCD[a,b]=GCD[b,a%b]. Trường hợp cơ bản cho hàm đệ quy của chúng ta là nếu b bằng 0, thì chúng ta sẽ trả về a

Độ phức tạp thời gian của GCD hai số trong Python sử dụng Đệ quy là O[log[max[a,b]]

GCD của hai số sử dụng vòng lặp for

Theo cách tiếp cận này, chúng tôi chỉ đơn giản là lặp lại từ 1 đến tối thiểu của A & B và khi chúng tôi tìm thấy một số, đó là một yếu tố của cả A và B. Sau đó, chúng tôi lưu trữ nó trong biến trả lời. Bằng cách này, chúng ta có được nhân tử chung cao nhất của A và B

def gcd[self, A, B]:
        # code here
        mn=min[A,B]
	    ans=1
	    for i in range[1,mn+1]:
	        if[A%i==0 and B%i==0]:
	            ans=i;
	    
	    return ans;

Độ phức tạp về thời gian của phương pháp này là O[min[A, B]], chậm hơn so với phương pháp log[n] trước đây của chúng tôi. Nó vượt quá giới hạn thời gian khi  1 ≤ A, B ≤ 109

Cách tìm gcd của hai số trong python

Ở đây mình kèm theo video code với harry để tìm gcd của hai số trong Python để các bạn hiểu rõ hơn về câu hỏi này

Trong chương trình này, bạn sẽ học Chương trình Python để tìm GCD của hai số bằng cách sử dụng đệ quy. Viết chương trình Python để tìm GCD của hai số bằng cách sử dụng đệ quy

def GCD[x,y]:
    r=x%y
    if[r==0]:
        return y
    else:
        return GCD[y,r]
n= int[input["Enter the first number :"]]
m= int[input["Enter the second number :"]]
print["The GCD of two numbers is:", GCD[n,m]]

đầu ra

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 ta sẽ sử dụng thuật toán Euclide

Vì vậy, nếu đầu vào là 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 sau -

  • Định nghĩa một hàm gcd[]. Điều này sẽ mất một, b
  • nếu a giống như b, thì
  • ngược lại khi a < b thì
  • nếu không thì,

Thí dụ

Chúng ta hãy xem triển khai 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

Cập nhật ngày 12-Oct-2021 08. 11. 17

Phương thức đệ quy GCD là phương thức đệ quy đuôi. Đệ quy đuôi có nghĩa là điều cuối cùng mà phương thức thực hiện là gọi chính nó. Đệ quy đuôi và phép lặp trong chương trình giúp ta lặp lại một câu lệnh ghép

// CPP Program to print single line command3 // CPP Program to print single line command9 // to find the GCD of n integers6

def gcd[self, A, B]:
        # code here
        mn=min[A,B]
	    ans=1
	    for i in range[1,mn+1]:
	        if[A%i==0 and B%i==0]:
	            ans=i;
	    
	    return ans;
05 // CPP Program to print single line command25 // CPP Program to print single line command26
def gcd[self, A, B]:
        # code here
        mn=min[A,B]
	    ans=1
	    for i in range[1,mn+1]:
	        if[A%i==0 and B%i==0]:
	            ans=i;
	    
	    return ans;
34
def gcd[self, A, B]:
        # code here
        mn=min[A,B]
	    ans=1
	    for i in range[1,mn+1]:
	        if[A%i==0 and B%i==0]:
	            ans=i;
	    
	    return ans;
35
def gcd[self, A, B]:
        # code here
        mn=min[A,B]
	    ans=1
	    for i in range[1,mn+1]:
	        if[A%i==0 and B%i==0]:
	            ans=i;
	    
	    return ans;
05 // to find the GCD of n integers8

Trong chương trình này, chúng ta đã định nghĩa một hàm sum[] nhận một đối số. Sử dụng vòng lặp for, hàm sum[] tìm tổng của chuỗi 1+2+…+[n-1]+n;

Bên trong chức năng chính, chúng tôi đã yêu cầu người dùng nhập phạm vi mà bạn muốn tìm tổng? . Khi trình biên dịch gặp result = sum[range]; . Sau khi hoàn thành việc thực thi chức năng, điều khiển quay trở lại chức năng chính với một số giá trị. Giá trị trả về từ hàm được lưu trữ trong biến kết quả. Cuối cùng, kết quả đã hiển thị trên màn hình

Sử dụng nhiều chức năng

Mô tả chương trình. - Viết chương trình C tìm tổng n số bằng hàm. Định nghĩa ba hàm input[], sum[], và display[]. Lấy đầu vào từ người dùng trong hàm input[] và trả về hàm chính. Tìm tổng của n số trong hàm sum[], trả về giá trị tổng cho hàm main. In kết quả bằng hàm display[]

#include

// function for taking input from user
int input[]
{
   int n;
   printf["Up to which number you want to find the sum: "];
   scanf["%d", &n];
   return n;
}

// function to find sum of two numbers
int sum[int num]
{
   int add = 0;
   for[int i=1; i

Chủ Đề