Liệt kê các số chia hết cho 3 nhưng không chia hết cho 5 nhỏ hơn n

2615
Lập trình C++

Bài 3. Nhập số nguyên dương n. Liệt kê các số chia hết cho 3 nhưng không chia hết cho 5 nhỏ hơn hoặc bằng n. Ví dụ:  

LIETKE.INP

LIETKE.OUT

25

3 6 9 12 18 21 24

Để liệt kê các số chia hết cho 3 nhưng không chia hết cho 5 nhỏ hơn n, ta có thể sử dụng thuật toán sau:

  1. Khởi tạo một biến i bằng 3, đây là số đầu tiên chia hết cho 3 nhưng không chia hết cho 5.
  2. Sử dụng vòng lặp while để duyệt qua các số từ i đến n-1.
  3. Trong mỗi lần lặp, kiểm tra xem số hiện tại có chia hết cho 3 nhưng không chia hết cho 5 hay không.
  4. Nếu có, in số đó ra.
  5. Tăng giá trị của i lên 3 và tiếp tục vòng lặp.

Dưới đây là mã giả của thuật toán trên:

i = 3
while i < n:
    if i % 3 == 0 and i % 5 != 0:
        print(i)
    i += 3

Dưới đây là một ví dụ về cách liệt kê các số chia hết cho 3 nhưng không chia hết cho 5 nhỏ hơn n bằng ngôn ngữ lập trình C++:

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Nhap n: ";
    cin >> n;

    for (int i = 3; i < n; i += 3) {
        if (i % 5 != 0) {
            cout << i << " ";
        }
    }

    return 0;
}

Ở đây, chương trình sử dụng một vòng lặp for để duyệt qua các số từ 3 đến n-1 với bước nhảy bằng 3. Trong mỗi lần lặp, chương trình kiểm tra xem số hiện tại có chia hết cho 5 hay không bằng cách sử dụng toán tử % để lấy phần dư của phép chia i cho 5. Nếu phần dư khác 0, tức là i không chia hết cho 5, chương trình in số đó ra màn hình.