İki Sayının LCM'sini Bulmak için C Programı

Bu örnekte, kullanıcı tarafından girilen iki sayının LCM'sini (En düşük ortak kat) hesaplamayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki C programlama konuları hakkında bilgi sahibi olmalısınız:

  • C Programlama Operatörleri
  • C if… else İfadesi
  • C while and do … while Loop

İki tamsayının LCM'si n1 ve n2, hem n1 hem de n2'ye (kalan olmadan) mükemmel şekilde bölünebilen en küçük pozitif tamsayıdır. Örneğin, 72 ve 120'nin LCM'si 360'tır.

While ve if kullanarak LCM

 #include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; ) 

Çıktı

 İki pozitif tam sayı girin: 72 120 72 ve 120'nin LCM'si 360'tır. 

Bu programda, kullanıcı tarafından girilen tamsayılar sırasıyla değişken n1 ve n2'de saklanır.

N1 ve n2 arasındaki en büyük sayı maks. İki sayının LCM'si maksimumdan az olamaz.

whileDöngünün test ifadesi her zaman doğrudur.

Her yinelemede, max'ın n1 ve n2'ye tam olarak bölünüp bölünemeyeceği kontrol edilir.

 eğer (min% n1 == 0 && maks% n2 == 0) (…) 

Bu test koşulu doğru değilse, max artırılır 1ve ifadenin test ifadesi ifdoğru olana kadar yineleme devam eder .

İki sayının LCM'si aşağıdaki formül kullanılarak da bulunabilir:

 LCM = (num1 * num2) / OBEB 

C programlamada iki sayının GCD'sini nasıl bulacağınızı öğrenin.

GCD Kullanarak LCM Hesaplaması

 #include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; ) 

Çıktı

 İki pozitif tam sayı girin: 72 120 72 ve 120 iki sayının LCM'si 360'tır. 

Ilginç makaleler...