Nền tảng Kiến thức - Hành trang tới Tương lai
Card image

Chương 9-Bài 3. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 2 - Tìm Ước chung, Bội chung của 2 số

Tác giả: Dương Nguyễn Phú Cường #11466
Ngày đăng: Hồi xưa đó
Lượt xem: 578

Đề 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;
}

Chương trình học


  1. Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
    1. Cài đặt trình soạn thảo code Dev C++ #10859
  2. Biến, Hằng số và Toán tử 6
    1. Các thao tác Nhập (input), Xuất (output) dữ liệu trong lập trình C #10975
    2. Lab 2.1 - Xây dựng chương trình tính toán Cộng Trừ Nhân Chia đơn giản #10971
    3. Lab 2.2 - Xây dựng chương trình tính Diện tích và Chu vi hình chữ nhật #10977
    4. Lab 2.3 - Xây dựng chương trình tính Diện tích và Chu vi hình tròn #10982
    5. Lab 2.4 - Xây dựng chương trình tính Điểm trung bình Toán Lý Hóa theo hệ số #10984
    6. Lab extra 2.1 - Xây dựng chương trình Quản lý thông tin Sinh viên đơn giản #10980
  3. Câu lệnh rẽ nhánh, điều kiện IF ELSE và SWITCH CASE 5
    1. Lab 3.1 - Xây dựng chương trình Xếp loại kết quả học tập #11046
    2. Lab 3.2.1 - Xây dựng chương trình Giải phương trình Bậc nhất #11056
    3. Lab 3.2.2 - Xây dựng chương trình Giải phương trình Bậc hai #11061
    4. Lab 3.3 - Xây dựng chương trình Tính tiền điện #11068
    5. Lab 3.4 - Xây dựng menu chương trình bằng IF ELSE và SWITCH CASE #11072
  4. Vòng lặp WHILE, DO WHILE và FOR 5
    1. Vòng lặp WHILE - Ví dụ cách hoạt động vòng lặp #11219
    2. Lab 4.1 - Tính trung bình tổng của các số tự nhiên chia hết cho 2 #11221
    3. Lab 4.2 - Xây dựng chương trình xác định Số nguyên tố #11222
    4. Lab 4.3 - Xây dựng chương trình xác định Số chính phương #11223
    5. Lab 4.4 - Xây dựng menu chương trình cho các bài tập trên #11224
  5. Hàm Function trong lập trình 3
    1. Lab 5.1 - Xây dựng chương trình tìm giá trị lớn nhất trong 3 số #11229
    2. Lab 5.2 - Xây dựng hàm tính năm nhuận #11349
    3. Lab 5.3 - Xây dựng hàm Hoán vị #11351
  6. Mảng Array trong Lập trình 5
    1. Lab 6.1 - Tính trung bình tổng các số chia hết cho 3 trong mảng #11353
    2. Lab 6.2 - Tìm giá trị lớn nhất (MAX) và nhỏ nhất (MIN) trong mảng #11355
    3. Lab 6.3 - Sắp xếp mảng theo thứ tự Giảm dần #11357
    4. Lab 6.4 - Tính Bình phương các phần tử trong mảng 2 chiều #11359
    5. Lab Extra 6.1 - Tính tổng các đường chéo của ma trận vuông NxN #11373
  7. Xử lý chuỗi String trong lập trình 4
    1. Lab 7.1 - Xây dựng chương trình đếm nguyên âm và phụ âm của 1 chuỗi #11361
    2. Lab 7.2 - Xây dựng chương trình Đăng nhập bằng USERNAME và PASSWORD #11363
    3. Lab 7.3 - Xây dựng chương trình sắp xếp chuỗi theo chữ cái #11365
    4. Lab Extra 7.1 - Chương trình Quản lý thông tin Sinh viên #11377
  8. Kiểu dữ liệu có cấu trúc Struct và các thuật toán trong Lập trình 3
    1. Lab 8.1 - Xây dựng chương trình lưu thông tin Sinh viên #11367
    2. Lab 8.2 - Sắp xếp Sinh viên theo điểm tăng dần #11369
    3. Lab 8.3 - Tìm kiếm Sinh viên #11371
  9. Assignment (Bài tập lớn) cuối khóa 11
    1. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 1 #11454
    2. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 1 - Kiểm tra số nguyên #11457
    3. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 2 - Tìm Ước chung, Bội chung của 2 số #11466
    4. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 3 - Tính tiền cho quán Karaoke #11470
    5. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 4 - Tính tiền điện #11471
    6. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 5 - Chức năng đổi tiền #11472
    7. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 6 - Tính lãi suất vay ngân hàng #11473
    8. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 7 - Vay tiền mua xe #11475
    9. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 8 - Sắp xếp thông tin Sinh viên #11476
    10. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 9 - Xây dựng game LOTT #11477
    11. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 10 - Tính toán Phân số #11478
  10. Tài liệu tham khảo 1
    1. Kho sách, nguồn tài liệu tham khảo Lập trình C #10987
  11. Kỳ thi cuối kỳ - Final Exam 1
    1. Tiêu chí chấm điểm Exam #11514
Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...

Chương trình học


  1. Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
    1. Cài đặt trình soạn thảo code Dev C++ #10859
  2. Biến, Hằng số và Toán tử 6
    1. Các thao tác Nhập (input), Xuất (output) dữ liệu trong lập trình C #10975
    2. Lab 2.1 - Xây dựng chương trình tính toán Cộng Trừ Nhân Chia đơn giản #10971
    3. Lab 2.2 - Xây dựng chương trình tính Diện tích và Chu vi hình chữ nhật #10977
    4. Lab 2.3 - Xây dựng chương trình tính Diện tích và Chu vi hình tròn #10982
    5. Lab 2.4 - Xây dựng chương trình tính Điểm trung bình Toán Lý Hóa theo hệ số #10984
    6. Lab extra 2.1 - Xây dựng chương trình Quản lý thông tin Sinh viên đơn giản #10980
  3. Câu lệnh rẽ nhánh, điều kiện IF ELSE và SWITCH CASE 5
    1. Lab 3.1 - Xây dựng chương trình Xếp loại kết quả học tập #11046
    2. Lab 3.2.1 - Xây dựng chương trình Giải phương trình Bậc nhất #11056
    3. Lab 3.2.2 - Xây dựng chương trình Giải phương trình Bậc hai #11061
    4. Lab 3.3 - Xây dựng chương trình Tính tiền điện #11068
    5. Lab 3.4 - Xây dựng menu chương trình bằng IF ELSE và SWITCH CASE #11072
  4. Vòng lặp WHILE, DO WHILE và FOR 5
    1. Vòng lặp WHILE - Ví dụ cách hoạt động vòng lặp #11219
    2. Lab 4.1 - Tính trung bình tổng của các số tự nhiên chia hết cho 2 #11221
    3. Lab 4.2 - Xây dựng chương trình xác định Số nguyên tố #11222
    4. Lab 4.3 - Xây dựng chương trình xác định Số chính phương #11223
    5. Lab 4.4 - Xây dựng menu chương trình cho các bài tập trên #11224
  5. Hàm Function trong lập trình 3
    1. Lab 5.1 - Xây dựng chương trình tìm giá trị lớn nhất trong 3 số #11229
    2. Lab 5.2 - Xây dựng hàm tính năm nhuận #11349
    3. Lab 5.3 - Xây dựng hàm Hoán vị #11351
  6. Mảng Array trong Lập trình 5
    1. Lab 6.1 - Tính trung bình tổng các số chia hết cho 3 trong mảng #11353
    2. Lab 6.2 - Tìm giá trị lớn nhất (MAX) và nhỏ nhất (MIN) trong mảng #11355
    3. Lab 6.3 - Sắp xếp mảng theo thứ tự Giảm dần #11357
    4. Lab 6.4 - Tính Bình phương các phần tử trong mảng 2 chiều #11359
    5. Lab Extra 6.1 - Tính tổng các đường chéo của ma trận vuông NxN #11373
  7. Xử lý chuỗi String trong lập trình 4
    1. Lab 7.1 - Xây dựng chương trình đếm nguyên âm và phụ âm của 1 chuỗi #11361
    2. Lab 7.2 - Xây dựng chương trình Đăng nhập bằng USERNAME và PASSWORD #11363
    3. Lab 7.3 - Xây dựng chương trình sắp xếp chuỗi theo chữ cái #11365
    4. Lab Extra 7.1 - Chương trình Quản lý thông tin Sinh viên #11377
  8. Kiểu dữ liệu có cấu trúc Struct và các thuật toán trong Lập trình 3
    1. Lab 8.1 - Xây dựng chương trình lưu thông tin Sinh viên #11367
    2. Lab 8.2 - Sắp xếp Sinh viên theo điểm tăng dần #11369
    3. Lab 8.3 - Tìm kiếm Sinh viên #11371
  9. Assignment (Bài tập lớn) cuối khóa 11
    1. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 1 #11454
    2. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 1 - Kiểm tra số nguyên #11457
    3. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 2 - Tìm Ước chung, Bội chung của 2 số #11466
    4. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 3 - Tính tiền cho quán Karaoke #11470
    5. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 4 - Tính tiền điện #11471
    6. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 5 - Chức năng đổi tiền #11472
    7. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 6 - Tính lãi suất vay ngân hàng #11473
    8. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 7 - Vay tiền mua xe #11475
    9. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 8 - Sắp xếp thông tin Sinh viên #11476
    10. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 9 - Xây dựng game LOTT #11477
    11. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 10 - Tính toán Phân số #11478
  10. Tài liệu tham khảo 1
    1. Kho sách, nguồn tài liệu tham khảo Lập trình C #10987
  11. Kỳ thi cuối kỳ - Final Exam 1
    1. Tiêu chí chấm điểm Exam #11514

Bài học trước Bài học tiếp theo