提交时间:2026-01-04 15:36:35
运行 ID: 80963
#include <iostream> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; // light[i] 表示第i盏灯的状态:true=开, false=关 // 为了方便,我们使用下标 1..N,忽略下标0 vector<bool> light(N + 1, true); // 初始全部开启 // 模拟M个人的操作 for (int person = 1; person <= M; person++) { // 对当前人的所有倍数编号的灯进行取反 for (int lamp = person; lamp <= N; lamp += person) { light[lamp] = !light[lamp]; // 取反 } } // 输出关闭的灯的编号 bool first = true; // 标记是否是第一个输出的编号(用于控制逗号) for (int i = 1; i <= N; i++) { if (!light[i]) { // 灯是关闭的 if (!first) { cout << ","; } cout << i; first = false; } } cout << endl; return 0; }