一條長廊裏依次裝有n(1 ≤ n ≤ 65535)盞電燈,從頭到尾編號1、2、3、…n-1、n。每盞電燈由一個拉線開關控制。開始,電燈全部關着。
有n個學生從長廊穿過。第一個學生把號碼凡是1的倍數的電燈的開關拉一下;接着第二個學生把號碼凡是2的倍數的電燈的開關拉一下;接着第三個學生把號碼凡是3的倍數的電燈的開關拉一下;如此繼續下去,最後第n個學生把號碼凡是n的倍數的電燈的開關拉一下。n個學生按此規定走完後,長廊裏電燈有幾盞亮着。 注:電燈數和學生數一致。
輸入:電燈的數量
輸出:亮着的電燈數量
#include <iostream> #include <string.h> using namespace std; int main() { int i,j,n,count=0; int light[100]; memset(light,0,sizeof(light)); cin>>n; for(i=1;i<=n;i++) //μúi§éú { for(j=1;j<n;j++) //à-μ { if(j%i==0) light[j]++; } } for(i=1;i<=n;i++) { if(light[i]%2==1) count++; } cout<<count<<endl; }