CF859G Circle of Numbers

Description

$ n $ evenly spaced points have been marked around the edge of a circle. There is a number written at each point. You choose a positive real number $ k $ . Then you may repeatedly select a set of $ 2 $ or more points which are evenly spaced, and either increase all numbers at points in the set by $ k $ or decrease all numbers at points in the set by $ k $ . You would like to eventually end up with all numbers equal to $ 0 $ . Is it possible? A set of $ 2 $ points is considered evenly spaced if they are diametrically opposed, and a set of $ 3 $ or more points is considered evenly spaced if they form a regular polygon.

Input Format

The first line of input contains an integer $ n $ ( $ 3

Output Format

Print "YES" (without quotes) if there is some sequence of operations that results in all numbers being $ 0 $ , otherwise "NO" (without quotes). You can print each letter in any case (upper or lower).

Explanation/Hint

If we label the points from $ 1 $ to $ n $ , then for the first test case we can set $ k=1 $ . Then we increase the numbers at points $ 7 $ and $ 22 $ by $ 1 $ , then decrease the numbers at points $ 7 $ , $ 17 $ , and $ 27 $ by $ 1 $ , then decrease the numbers at points $ 4 $ , $ 10 $ , $ 16 $ , $ 22 $ , and $ 28 $ by $ 1 $ .