Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 while 루프를 사용하여 두 숫자의 GCD 찾기

<시간/>

문제

C 프로그래밍 언어를 사용하여 두 숫자에 대한 최대 공약수를 생성합니다.

해결책

사용자가 콘솔에서 두 개의 숫자를 입력하도록 합니다. 이 두 숫자에 대해 최대 공약수를 구해 보겠습니다.

두 숫자의 GCD는 두 숫자를 나머지 없이 정확히 나눈 가장 큰 숫자입니다.

두 숫자의 GCD를 찾는 데 사용하는 논리는 다음과 같습니다. -

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

프로그램 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;
}

출력

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

프로그램 2

이 예에서 for 루프 -

를 사용하여 두 숫자의 GCD를 구해 보겠습니다.
#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;
}

출력

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