Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đếm bội số chung của hai số trong một khoảng trong C++


Cho hai số A và B. Cũng cung cấp hai số START và END xác định một khoảng số. Ô thứ A được sơn trắng, ô thứ B được sơn đen. Nếu ô được sơn cả trắng và đen thì nó chuyển thành xám. Mục tiêu là tìm tổng số ô xám.

Ta thực hiện bằng cách duyệt số từ START đến END và với mỗi số kiểm tra xem số đó có phải bội của cả A và B không. Nếu có tăng count.

Hãy hiểu qua các ví dụ.

Đầu vào

START=10 END=20 A=3 B=6

Đầu ra

Bội chung của A và B (ô xám): 2

Giải thích

Các số 12, 18 là bội của 3 và 6.

Đầu vào

START=1 END=100 A=10 B=11

Đầu ra

Bội chung của A và B (ô xám): 0

Giải thích

Không có bội chung của 10 và 11 trong khoảng.

Phương pháp sử dụng trong chương trình dưới đây

  • Nhận số nguyên START và END làm biến phạm vi.
  • Nhận A và B là hai biến.
  • Hàm countGrey(int start, int end, int a, int b) nhận biến phạm vi, a, b và trả về số bội của a và b.
  • Khởi tạo biến count = 0 cho các số như vậy.
  • Duyệt khoảng số bằng vòng lặp for. i=start đến i=end.
  • Nếu i%a==0 && i%b==0. Thì 'i' là bội của cả a và b.
  • Sau tất cả vòng lặp count chứa tổng số là bội của 'a' và 'b'.
  • Trả về count làm kết quả.

Ví dụ

#include <bits/stdc++.h>
using namespace std;

int countGrey(int start, int end, int a, int b) {
    int count = 0;
    for (int i = start; i <= end; i++) {
        if(i % a == 0 && i % b == 0) // ô là xám
            count++;
    }
    return count;
}

int main() {
    int START = 10, END = 30;
    int A = 4, B = 3;
    cout << "Bội chung của A và B (ô xám): " << countGrey(START, END, A, B);
    return 0;
}

Đầu ra

Nếu chạy mã trên sẽ cho kết quả sau:

Bội chung của A và B (ô xám): 2