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

Gán ghế cho trẻ em tránh cãi vã theo quy tắc GCD và chia hết bằng C++

Mô tả bài toán

Có n bàn, mỗi bàn 4 ghế (1..4n). Hai trẻ ngồi ghế a,b sẽ cãi nhau nếu gcd(a,b)=1 hoặc a chia b hoặc b chia a. Chọn n ghế (mỗi bàn 1 ghế?) sao cho không có cặp nào cãi nhau. In danh sách ghế.

Ví dụ

n=4 → Output: 14,10,12,8 (các số chẵn từ 2n đến 4n-2).

Thuật toán

Chọn các số chẵn từ 2n đến 4n-2 (bước 2). Các số này > n, đều chẵn nên gcd≥2, và không chia hết nhau vì đều trong khoảng (2n, 4n).

Code C++

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

void solve(int n) {
    for (int i = 2*n; i < 4*n; i += 2)
        cout << i << ", ";
}

int main() {
    int n = 4;
    solve(n);
    return 0;
}

Đầu vào / Đầu ra

Input: 4

Output: 8, 10, 12, 14,