#1128. 硬币翻转

硬币翻转

题目描述

N N 个硬币(编号从 1 1 N N N5000 N \leq 5000 )初始时全部正面向上。有 M M 个人(编号从 1 1 M M MN M \leq N )依次对硬币进行操作:

  • 1 1 个人将所有硬币翻转一次;
  • 2 2 个人将编号为 2 2 的倍数的硬币翻转一次;
  • 3 3 个人将编号为 3 3 的倍数的硬币翻转一次;
  • 以此类推,直到第 M M 个人操作完毕。

请输出最终正面向上的硬币编号(按升序排列)。

输入格式

输入一行,包含两个正整数 N N M M ,以单个空格隔开。

输出格式

输出一行,包含所有最终正面向上的硬币编号,按升序排列,编号之间用空格分隔。

10 10
2 3 5 6 7 8 10

样例解释

  • 初始状态:所有硬币正面向上(状态为 1 1 )。
  • 操作过程
    1. 1 1 个人翻转所有硬币,所有硬币变为反面(状态为 0 0 )。
    2. 2 2 个人翻转编号为 2,4,6,8,10 2, 4, 6, 8, 10 的硬币,这些硬币变为正面。
    3. 3 3 个人翻转编号为 3,6,9 3, 6, 9 的硬币,这些硬币状态改变。
    4. 后续每个人按规则操作,直到第 10 10 个人。
  • 最终状态:硬币 2,3,5,6,7,8,10 2, 3, 5, 6, 7, 8, 10 正面向上。

数据范围

  • 1MN5000 1 \leq M \leq N \leq 5000