#HK4254. 「NordicOI 2017」Yule Lads

「NordicOI 2017」Yule Lads

题目描述

题目译自 NordicOI 2017 T2 「Yule Lads

冰岛的孩子们非常幸运,他们不仅有一个圣诞老人,还有 NN 个!这些圣诞小矮人被称为 Yule Lads,在圣诞节前的 NN 个夜晚里,每晚都会有一个小矮人来到镇上,给那些乖孩子送小礼物,给那些淘气的孩子送土豆。

在冰岛的一个小镇上,有一条街道上有 NN 座房子,按顺序编号为 11NN。每座房子都装饰着美丽的圣诞灯,起初所有灯都是亮着的。

在圣诞节前的每个夜晚,都会有一个 Yule Lad 访问这条街道。距离圣诞节还有 KK 个夜晚时来访的小矮人非常喜欢数字 KK,他只会访问那些房子编号能被 KK 整除的房子。此外,这些小矮人都是捣蛋鬼,他们会切换每个访问的房子的圣诞灯状态(即如果灯是亮的就关掉,如果是关的就打开)。

然而,有些小矮人感觉不舒服,没有来镇上。圣诞节当天,除了第一座房子外,所有房子的灯都是亮着的。请问有多少个小矮人来过镇上?

输入格式

输入的第一行包含一个正整数 NN,表示 Yule Lads 的数量和街道上的房子数量。

输出格式

输出一个整数,表示来过镇上的 Yule Lads 的数量。你可以假设只有一种情况会导致所有房子的灯都亮着,除了第一座房子。

6
5

考虑 N=6N = 6 的情况。有六个 Yule Lads 和六座房子。假设没有小矮人生病,以下是圣诞节前六个夜晚发生的事情:

  • 圣诞节前六个夜晚,小矮人会把第 66 号房子的灯关掉。
  • 圣诞节前五个夜晚,小矮人会把第 55 号房子的灯关掉。
  • 圣诞节前四个夜晚,小矮人会把第 44 号房子的灯关掉。
  • 圣诞节前三个夜晚,小矮人会把第 33 号房子的灯关掉,并把第 66 号房子的灯打开。
  • 圣诞节前两个夜晚,小矮人会把第 22 号和第 66 号房子的灯关掉,并把第 44 号房子的灯打开。
  • 圣诞节前一个夜晚,小矮人会把第 11 号和第 44 号房子的灯关掉,并把第 2,3,5,62,3,5,6 号房子的灯打开。

然而,圣诞节当天,第 44 号房子的灯是关着的,这与实际情况不符。

另一方面,如果只有圣诞节前四天应该来镇上的小矮人生病了,那么圣诞节当天,除了第 11 号房子外,所有房子的灯都会亮着。因此,正确答案是 55:小矮人分别在圣诞节前 6,5,3,2,16, 5, 3, 2, 1 天来过镇上。

13
9
68
42

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 1515 N13N \leq 13
22 1010 N1000N \leq 1000
33 1212 N105N \leq 10^5
44 1313 N5106N \leq 5 \cdot 10^6
55 1515 N108N \leq 10^8
66 1414 N1010N \leq 10^{10}
77 2121 N1013N \leq 10^{13}