Master Delegator


Submit solution

Points: 1
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C++, Java, Python

At the highest level of AUCPL inc, what matters isn't technical skill or knowledge, but how well you can divide responsibility, creating the illusion of productivity and shifting blame to your underlings when things go wrong. Recently, the CFO Shaun got fired for gambling the company budget, and the new CFO will be selected between you and your arch-nemesis, Tung.

To decide if you or Tung will be promoted, the CEO has proposed you play a game of delegation battle. This game works as follows: there is an initial integer workload amount n. You go first, and you and Tung take turns delegating work until someone cannot make a turn. Delegate or die, as they say.

To make a turn, you must pick a prime number p and a positive integer e such that p^e divides n with no remainder, and replace n with n / p^e (a smaller positive integer). This represents delegating work to your prime underlings. Given that you go first and whoever is first unable to make a move loses, can you calculate whether you will win and be promoted, or if Tung will be victorious instead?

Input

The first line contains a single integer n (1 \leq n \leq 10^10), the initial workload amount.

Output

If you can always win (you always take the first turn), output Yes. Otherwise, output No.

Example

Input 1
13
Output 1
Yes

Clearly, you can instantly win here by selecting p=13 and e=1, thus replacing n with 13/13^1=1. At this point, Tung is unable to move, as 1 has no prime divisors.

Input 2
18
Output 2
Yes

Here you can replace n with 6 by selecting p=3,e=1. At this point, whether Tung divides by 2 or 3 you will win regardless by reducing n to 1, so Tung will be unable to make his next turn. This is the only way to win in this case.

Input 3
35
Output 3
No
Input 4
504
Output 4
No

Comments

There are no comments at the moment.