【题目描述】
有N盏灯,开始时灯都是亮着的,每个灯都有一个开关控制着。现按其顺序编号为1,2,3,……N,然后将编号为2的倍数的灯拉一下,其次将编号为3的倍数的灯拉一下,再将编号为4的倍数的灯拉一下,最后将编号为5的倍数的灯拉一下,四次拉完之后,问亮着的灯的编号?
【输入】
文件中只有一个整数n(其中1≤n≤30)
【输出】
文件中有若干行,是亮着灯的编号。
【输入样例】10
【输出样例】1 4 6 7 8 10
python代码:
num = int(input("请输入:"))
arr=[]
arr.append(0)
for i in range(1,num+1):
arr.append(1)
for j in range(1,num+1):
if j%2==0:
arr[j]=1-arr[j]
if j%3==0:
arr[j]=1-arr[j]
if j%4==0:
arr[j]=1-arr[j]
if j%5==0:
arr[j]=1-arr[j]
for k in range(1,num+1):
if arr[k]==1:
print(str(k)+" ",end="")
C++代码:
#include<iostream>
using namespace std;
int main(){
int num;
cin>>num;
int arr[num+1];
for(int i=1;i<=num;i++){
arr[i]=1;
}
for(int j=1;j<=num;j++){
if(j%2==0){
arr[j]=1-arr[j];
}
if(j%3==0){
arr[j]=1-arr[j];
}
if(j%4==0){
arr[j]=1-arr[j];
}
if(j%5==0){
arr[j]=1-arr[j];
}
}
for(int k=1;k<=num;k++){
if(arr[k]==1){
cout<<k<<" ";
}
}
return 0;
}