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

โปรแกรม C หาตัวหารร่วมมาก (HCF) และตัวคูณร่วมน้อย (LCM)

ตัวหารร่วมมาก (HCF / GCD)

ตัวหารร่วมมากคือจำนวนเต็มบวกที่มากที่สุดที่หารตัวเลขทั้งสองลงตัว เรียกอีกอย่างว่า Greatest Common Divisor (GCD) หรือ Greatest Common Measure (GCM)

ตัวอย่าง: HCF ของ 12 และ 16

ตัวหารของ 12: 1, 2, 3, 4, 6, 12
ตัวหารของ 16: 1, 2, 4, 8, 16
HCF = 4

ตัวคูณร่วมน้อย (LCM)

ตัวคูณร่วมน้อยคือจำนวนเต็มบวกที่น้อยที่สุดที่หารด้วยตัวเลขทั้งสองลงตัว

ตัวอย่าง: LCM(2,3) = 6, LCM(6,10) = 30

ความสัมพันธ์ระหว่าง HCF และ LCM

สำหรับจำนวนเต็มบวก a, b:

a * b = HCF(a,b) * LCM(a,b)

ดังนั้น LCM = (a * b) / HCF

อัลกอริทึม Euclidean Algorithm (หา HCF)

วิธีที่มีประสิทธิภาพที่สุด:

while (b != 0) {
    temp = b;
    b = a % b;
    a = temp;
}
// HCF = a

ตัวอย่างโปรแกรม: หา HCF และ LCM

#include <stdio.h>
int main() {
    int num1, num2, x, y, temp, gcd, lcm;
    printf("ป้อนจำนวนเต็ม 2 ตัว: ");
    scanf("%d%d", &x, &y);
    num1 = x;
    num2 = y;
    // Euclidean algorithm
    while (num2 != 0) {
        temp = num2;
        num2 = num1 % num2;
        num1 = temp;
    }
    gcd = num1;
    lcm = (x * y) / gcd;
    printf("GCD ของ %d และ %d = %d\\n", x, y, gcd);
    printf("LCM ของ %d และ %d = %d\\n", x, y, lcm);
    return 0;
}

ผลลัพธ์ตัวอย่าง

Run 1:
ป้อนจำนวนเต็ม 2 ตัว: 6 12
GCD ของ 6 และ 12 = 6
LCM ของ 6 และ 12 = 12
Run 2:
ป้อนจำนวนเต็ม 2 ตัว: 24 36
GCD ของ 24 และ 36 = 12
LCM ของ 24 และ 36 = 72

การปรับปรุงโค้ด (Best Practices)