Lights [II]
The blurb for this problem is the same as Lights [I], save for the statement of the problem.
You stand before an infinitely long corridor containing lights and their respective switches. You'd like to turn a subset of the lights on using little robots that will flick certain switches infinitely along the corridor.
In this second problem, you'll be sending an infinite number of robots. The robot will flick switches according the the following rule:
Robot flicks light switch if divides . In other words, the robot flicks every switch.
A light switch stays on if after all robots are done, it has been flicked an odd number of times. For example, Light Switch is on because it was flicked by Robots 1, 2 and 3. While Light Switch is off because it was flicked by Robots 1 and 2.
Input
Input will contain a single integer , representing how many lights we'll be considering
Output
Output will contain a single integer, representing the total number of lights at position at or before the light that are on at the end of execution
Constraints
Examples
Input
3
Output
2
Explanation
2 is the only light switch that is turned off.
Input
4
Output
3
Explanation
2 is the only light switch that is turned off.
Input
10
Output
6
Explanation
2, 6, 8, 10 are the only light switches that are turned off.
Comments