南阳题目77-开灯问题

来源:互联网 发布:淘宝代理利润 编辑:程序博客网 时间:2024/05/29 23:46

开灯问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述
有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000
输入

输入一组数据:n和k

输出

输出开着的灯编号

样例输入

7 3

样例输出

1 5 6 7

来源


这一题主要就是理解题意,开开关关,主要是看每一个灯操作了多少次,然后再来判断是否开着。


#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){int a,b,n,m,i,j,s[1010],flag;scanf("%d%d",&a,&b);memset(s,0,sizeof(s));for(i=1;i<=a;i++){for(j=1;j<=b;j++){if(i%j==0)s[i]++;}}flag=1;for(i=1;i<=a;i++){if(s[i]&1){if(flag){printf("%d",i);flag=0;}elseprintf(" %d",i);}}return 0;}




0 0