Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ค้นหา GCD ของตัวเลขสองตัวโดยใช้ while loop ในภาษา C


ปัญหา

สร้างตัวหารร่วมมากสำหรับตัวเลขสองตัวใดๆ โดยใช้ภาษาโปรแกรม 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

ในตัวอย่างนี้ ให้เราหา GCD ของตัวเลขสองตัวโดยใช้ for loop −

#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