问题1147--第62课 开门关门

1147: 第62课 开门关门

时间限制: 1 Sec  内存限制: 128 MB
提交: 23  解决: 18
[提交] [状态] [讨论版] [命题人:]

题目描述

风之巅小学有48间教室,每间教室有2扇门,用196分别编号。有一天,狐狸老师把所有的门都打开了,第二个到校的格莱尔把所有编号是2的倍数的房门做相反的处理(原来开着的关上,关着的打开),第三个到校的同学把所有编号为3的倍数的房门做相反的处理……42个到校的尼克把所有编号为42倍数的房门做相反的处理。问最后共有几扇门是开着的,分别是哪几扇?


如果你能够回答上面的问题,那么你应该也可以编程搞定。
现在我们输入教室的数量n(小于等于1000),和到校的学生数量m(小于教室的数量),请你编写程序输出最后共有几扇门是开着的,分别是哪几扇?
比如我们输入4 3,表示有4间教室,3个人会到校(第一个人是狐狸老师)。
那么此时一共有8个门,第一个到校的狐狸老师把门都打开了,第二个到校的同学关闭了2、4、6、8号门,第三到校的同学把编号为3的倍数的门做了相反处理,最终开着的门有4个,分别为1、5、6、7
也即此时电脑会输出
4
1 5 6 7

输入

两个整数,分别表示教室的数量n和到校的人数m

输出

两行
第一行为开着的门的数量
第二行为开着的门的编号,以一个空格隔开

样例输入 Copy

4 3

样例输出 Copy

4
1 5 6 7

来源/分类