天黑请开灯
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
一条长廊里依次装有 n 盏电灯,从头到尾编号为1,2,3… n .每盏灯由一个拉线开关控制.开始,电灯全部关着.
有 k 个同学列队从长廊走过来.第一个同学把号码凡是1的倍数的电灯的开关拉一下;接着第二个同学把凡是2的倍数的电灯开关拉一下;接着第三个同学把凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第 k 个同学把号码凡是 k 的倍数的电灯的开关拉一下.当第 k 个同学按此规定穿过长廊之后,长廊里还有几盏灯亮着?
Output:
输出为一行,输出最后亮着的灯的数量。
Sample Input:
5 1
100 100
Sample Output:
5
10
思路很简单;计算1~n的每个灯拉的次数,if次数%2==0;则为关;else则为开;
附上AC代码:
1 #include<stdio.h>
2 int main()
3 {
4 int n,i,j,k,num,m;
5 while(~scanf("%d%d",&n,&k))
6 {
7 m=0;
8 for(j=1;j<=n;j++)
9 {
10 num=0;
11 for(i=1;i<=k;i++)
12 {
13 if(j%i==0)
14 num++;
15 }
16 if(num%2!=0)
17 m++;
18 }
19 printf("%d\n",m);
20 }
21 return 0;
22 }