开关灯 计蒜客 - T1391
问题描述
蒜头君今天回到了老家的大宅院,老家的灯还是那种拉线的灯(拉一次为亮,再拉一次就灭),蒜头君觉得无聊。
把 1000 盏灯中编号是 3 的倍数的拉了一次,5 的倍数拉了一次,7 的倍数拉了一次(灯的编号从 1-1000,灯一开始都是亮的)。
这个时候蒜头君在想还剩下几盏灯还在亮着?
输入格式
输入一个整数 nn,表示蒜头君家里灯的数量。
输出格式
输出一个整数 n,表示还有几盏灯还亮着。
数据范围
1≤n≤1000。
输入样例
30
输出样例
16
- 参考程序
#include<iostream>
#include<cstdio>
using namespace std;
const int N=1e3+10;
int a[N], ans=0; // 0亮, 1灭
int main(){
int n; cin>>n;
for(int i=1; i<=n; i++){
if(i%3==0) a[i]=!a[i];
if(i%5==0) a[i]=!a[i];
if(i%7==0) a[i]=!a[i];
}
for(int i=1; i<=n; i++){
if(a[i]==0) ans++;
}
cout<<ans<<endl;
return 0;
}