总时间限制:
1000ms
内存限制:
65536kB
描述
N盏灯排成一排,从1到N依次编号。有N个人也同样编号。
第一个人将灯全部熄灭;
第2个人将对应2和2的倍数的灯打开;
第3个人将对应着3和3的倍数的灯做反向操作(如果原来是开,则关掉它,否则就打开它);
以后的人和3做同样的操作,即第i个人将对应着i和i的倍数的灯做反向操作。
输入
灯的总数N, 1<=N<=1000
输出
在第N个人操作后,顺序输出还亮着灯的编号。
样例输入
8
样例输出
2 3 5 6 7 8
//
// 开关电灯.cpp
// Cheese
//
// Created by 廖启帆 on 2019/4/5.
// Copyright © 2019 廖启帆. All rights reserved.
//
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int main(){
int n,i;
cin>>n;
if (n==1) {
return 0;
}
cout<<2;
for (i=3; i<=n; i++) {
if ((int)sqrt(i)!=sqrt(i)) {
printf(" %d",i);
}
}
return 0;
}