Hướng dẫn giải của [LOOP_HNCODE_14] Liệt kê số


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Cho hai số nguyên dương L và R ~1 \le L \le R \le 10^6~, hãy liệt kê các số vừa chia hết cho 7 vừa chia hết cho 13 trong đoạn từ L đến R, theo thứ tự từ bé đến lớn. Các số cách nhau ít nhất một khoảng trắng, nếu không có số nào thì không in gì.

Cách làm

Một số vừa chia hết cho 7 vừa chia hết cho 13 thì cũng chia hết cho 91. Duyệt i từ L đến R, nếu i % 7 == 0 và i % 13 == 0 thì in i. Biến dau dùng để biết đã in số nào chưa, từ số thứ hai trở đi mới in thêm dấu cách trước số đó.

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

int main() {
    int l, r;
    cin >> l >> r;
    // Số chia hết cùng lúc cho 7 và 13 cũng là số chia hết cho 91
    bool dau = true;   // đánh dấu đã in số nào chưa
    for (int i = l; i <= r; i++) {
        if (i % 7 == 0 && i % 13 == 0) {
            if (!dau) cout << " ";
            cout << i;
            dau = false;
        }
    }
    cout << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.