Đề bài

Parse 2: Thực hiện chức năng 2

Chức năng số 2. Tìm Ước số chung và bội số chung của 2 số
  • Input: Nhập và 2 số nguyên (x,y) từ bàn phím
  • Output: Hiển thi ra màn hình
    • Ước số chung lớn nhất của 2 số
    • Bội số chung nhỏ nhất của 2 số

Hướng dẫn giải

/*
PARSE 2: thực hiện các chức năng trong chương trình
*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

/*
Chức năng số 2. Tìm Ước số chung và bội số chung của 2 số
Input: Nhập và 2 số nguyên (x,y) từ bàn phím
Output: Hiển thi ra màn hình
- Ước số chung lớn nhất của 2 số
- Bội số chung nhỏ nhất của 2 số
*/
// Hàm tìm UCLN (Ước chung lớn nhất)
// Ước chung lớn nhất là con số nguyên dương mà A và B đều chia hết cho nó
int UCLN(int A, int B) {
    //Nếu A hoặc B = 0 thì UCLN = A + B
    if (A == 0 || B == 0)
        return A + B;
 
   	//Lặp cho tới khi A = B
    while(A != B) {
        //Lấy số lớn trừ số bé.
        if (A > B) {
            A -= B;
        } else {
            B -= A;
        }
    }
     
   	// Trả về UCLB
   	// Lúc này A = B nên return về A hay B đều giống nhau
    return A;
}
// Hàm tim BCNN (Bội chung nhỏ nhất)
// Bội chung nhỏ nhất là con số nguyên dương có thể chia hết cả A và B
int BCNN(int A, int B) {
  int kq;
  int step;
  
  //tìm step là số lớn nhất giữa a và b
    if(A > B )
    {
        step = A;
    } 
  else { // a<=b
        step = B;
    }
    
    for(int i = step; i <= A*B; i += step){
        if(i % A == 0 && i % B == 0) // neu i chia het cho ca a va b
        {
            kq = i;
            break;
        }
    }
    
    // Trả về BCNN
    return kq;
}
void chucNangSo2() {
  // 1. Khai báo biến
  int x, y;
    
  // 2. INPUT nhập liệu
  printf("Moi nhap x: ");
  scanf("%d", &x);
  printf("Moi nhap y: ");
  scanf("%d", &y);
  
  // 3. Thực hiện tìm UCLN
  int uocchunglonnhat = UCLN(x, y);
  int boichungnhonhat = BCNN(x, y);
  printf("- Uoc chung lon nhat: %d\n", uocchunglonnhat);
  printf("- Boi chung nho nhat: %d\n", boichungnhonhat);
}

int main() {
  // 1. Khai báo biến
  char yn;
  int lua_chon = -1;

  // 2. OUTPUT xuất ra màn hình MENU	
  Chon:
    printf("================ MENU CHUONG TRINH ==============\n");
    printf("+ 0. Thoat.                                     +\n");
    printf("+ 1. Kiem tra so nguyen.                        +\n");
    printf("+ 2. Tim Uoc so chung va Boi so chung cua 2 so. +\n");
    printf("+ 3. Tinh tien cho quan Karaoke.                +\n");
    printf("+ 4. Tinh tien dien.                            +\n");
    printf("+ 5. Doi tien.                                  +\n");
    printf("+ 6. Tinh lai suat vay ngan hang vay tra gop.   +\n");
    printf("+ 7. Vay tien mua xe.                           +\n");
    printf("+ 8. Sap xep thong tin sinh vien.               +\n");
    printf("+ 9. Xay dung game LOTT.                        +\n");
    printf("+ 10. Tinh toan phan so.                        +\n");
    printf("=================================================\n");
  
  Nhap:
    printf("Moi ban chon: ");
    scanf("%d", &lua_chon);
  
  // Thoat
  if(lua_chon == 0) {
    printf("Cam on ban da su dung chuong trinh. Hen gap lai!!!");
    return 0;
  }
  
  // Thuc hien cac chuong trinh
  switch(lua_chon) {
    case 1:
      // Kiem tra so nguyen
      break;
    case 2:
      // Tim Uoc so chung va Boi so chung cua 2 so
      chucNangSo2();
      break;
    case 3:
      // Tinh tien cho quan Karaoke
      break;
    case 4:
      // Tinh tien dien
      break;
    case 5:
      // Doi tien
      break;
    case 6:
      // Tinh lai suat vay ngan hang vay tra gop
      break;
    case 7:
      // Vay tien mua xe
      break;
    case 8:
      // Sap xep thong tin sinh vien
      break;
    case 9:
      // Xay dung game LOTT
      break;
    case 10:
      // Tinh toan phan so
      break;
    default:
      printf("Vui long chi lua chon tu 1-10. Moi ban nhap lai...");
      goto Nhap;
      break;
  }
  
  // Hỏi có muốn tiêp tục sử dụng chương trình hay không?
  fflush(stdin);
  printf("Ban co muon tiep tuc (Y/N): "); 
  scanf("%c", &yn);
  if(yn == 'y' || yn == 'Y'){
    system("cls"); // Clear màn hình
    goto Chon;
  }
  else exit(0);
  
  getch(); // Lenh dung man hinh
  return 0;
}