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:
- 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.
- Sử dụng vòng lặp while để duyệt qua các số từ i đến n-1.
- 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.
- Nếu có, in số đó ra.
- 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.