2009 - 硬币翻转
时间限制 : 1 秒
内存限制 : 64 MB
假设有n个硬币(n为不大于5000的正整数),从1到n按顺序依次编号,初始时全部处于正面向上的状态;有m个人(m为不大于n的正整数)也从1到m依次编号。 第一个人(1号)将硬币全部翻转一次,第二个人(2号)将编号为2的倍数的硬币翻转一次,第三个人(3号)将编号为3的倍数的硬币翻转一次。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的硬币翻转一次。 请问:当第m个人操作之后,哪些硬币是正面向上的,按从小到大输出其编号,以空格分开。
输入
输入正整数n和m,以单个空格隔开。
输出
顺次输出正面向上的硬币的编号,其间用空格间隔。
样例
输入
10 10
输出
2 3 5 6 7 8 10
提示
原则上此问题作为CIE等级考试一级的试题出现,属于超纲的试题。
一般方法求解本题需要使用到数组。但是不用数组也可以完成,对初学者来说,有些难度。
来源
CIE等级考试