Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tìm ra GCD của hai số bằng vòng lặp while trong ngôn ngữ C

Vấn đề

Tạo ước số chung lớn nhất cho hai số bất kỳ bằng ngôn ngữ lập trình C.

Giải pháp

Cho phép người dùng nhập hai số bất kỳ từ bảng điều khiển. Đối với hai số đó, hãy tìm ước số chung lớn nhất.

GCD của hai số là số lớn nhất chia chính xác cả hai mà không có dư.

Logic chúng tôi sử dụng để tìm GCD của hai số như sau -

while(b!=0) //check for b=0 condition because in a/b ,b should not equal to zero
   {
      rem=a % b;
      a=b;
      b=rem;
   }
Print a

Chương trình 1

#include<stdio.h>
int main(){
   int a,b,rem;
   printf("enter any two numbers:");
   scanf("%d%d",&a,&b);
   while(b!=0) //check for b=0 condition because in a/b ,b should not equal to zero{
      rem=a % b;
      a=b;
      b=rem;
   }
   printf("GCD of two numbers is:%d\n",a);
   return 0;
}

Đầu ra

enter any two numbers:8 12
GCD of two numbers is:4

Check: 8= 2 * 2 *2
      12= 2 * 2 * 3

The Greatest common divisor of two numbers is : 2 * 2 =4

Chương trình 2

Trong ví dụ này, chúng ta hãy tìm GCD của hai số bằng vòng lặp for -

#include <stdio.h>
int main(){
   int num1, num2, i, GCD;
   printf("enter two numbers: ");
   scanf("%d %d", &num1, &num2);
   for(i=1; i <= num1 && i <= num2; ++i){
      if(num1%i==0 && num2%i==0)
         GCD = i;
   }
   printf("GCD of two numbers is:%d", GCD);
   return 0;
}

Đầu ra

enter two numbers: 24 48
GCD of two numbers is:24