luogu#P11480. [NordicOI 2017] Yule Lads

[NordicOI 2017] Yule Lads

题目背景

译自 Nordic Olympiad in Informatics 2017 Yule Lads

题目描述

冰岛的孩子们非常幸运。他们有 NN 个圣诞老人!这些圣诞老人被称为尤拉兄弟(Yule Lads)。在圣诞节前的 NN 个晚上,他们中的一个会来到镇上,给乖孩子送上小礼物,而顽皮的孩子则得到一个土豆。

在冰岛的一个小镇上,有一条街道上有 NN 栋房子,编号依次为 11NN。每栋房子都用圣诞灯装饰得非常漂亮,起初这些灯全都亮着。

在圣诞节前的每个晚上,会有一位尤拉兄弟光临这条街道。圣诞节前第 KK 个晚上来访的尤拉兄弟非常喜欢数字 KK,因此他只会拜访编号可以被 KK 整除的房子。此外,尤拉兄弟们很顽皮,会切换每个被拜访房子的圣诞灯的状态(即如果灯亮着则关掉,灯关着则打开)。

然而,有一些尤拉兄弟生病了,没有来到镇上。在圣诞节当天,除了第一栋房子以外,所有房子的灯都亮着。问有多少尤拉兄弟来到了镇上?

输入格式

第一行输入一个正整数 NN,表示尤拉兄弟的数量以及街道上的房子数量。

输出格式

输出一个整数,表示来到镇上的尤拉兄弟的数量。可以假设只有一种可能的情况会导致所有房子的灯亮着,除了第 11 号房子的灯。

6
5
13
9
68
42

提示

考虑 N=6N=6 的情况,街道上有六栋房子,圣诞节前的每个晚上发生以下情况(假设没有尤拉兄弟生病):

  • 圣诞节前第 66 天:尤拉兄弟会关闭第 66 号房子的灯。
  • 圣诞节前第 55 天:尤拉兄弟会关闭第 55 号房子的灯。
  • 圣诞节前第 44 天:尤拉兄弟会关闭第 44 号房子的灯。
  • 圣诞节前第 33 天:尤拉兄弟会关闭第 33 号房子的灯,并打开第 66 号房子的灯。
  • 圣诞节前第 22 天:尤拉兄弟会关闭第 22 和第 66 号房子的灯,并打开第 44 号房子的灯。
  • 圣诞节前第 11 天:尤拉兄弟会关闭第 11 和第 44 号房子的灯,并打开第 22335566 号房子的灯。

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

如果只有原本应该在圣诞节前第 44 天到来的尤拉兄弟生病了,那么所有灯都将亮着,除了第 11 号房子的灯。正确答案是 55:来到镇上的尤拉兄弟是在第 6655332211 天。


你的解法将在一组子任务上进行评分。每个子任务包含多个测试用例。要获得子任务的分数,你的解法必须通过子任务中的所有测试用例。

子任务 分数 限制条件
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}