Openjudge 3178:開關電燈 C++版

總時間限制: 

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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章