Alice and Bob take turns playing a game, with Alice starting first.

Initially, there is a number `N`

on the chalkboard. On each player's turn, that player makes a *move* consisting of:

- Choosing any
`x`

with`0 < x < N`

and`N % x == 0`

. - Replacing the number
`N`

on the chalkboard with`N - x`

.

Also, if a player cannot make a move, they lose the game.

Return `True`

if and only if Alice wins the game, assuming both players play optimally.

**Example 1:**

Input:2Output:trueExplanation:Alice chooses 1, and Bob has no more moves.

**Example 2:**

Input:3Output:falseExplanation:Alice chooses 1, Bob chooses 1, and Alice has no more moves.

**Note:**

`1 <= N <= 1000`

```
struct Solution;
impl Solution {
fn divisor_game(n: i32) -> bool {
n % 2 == 0
}
}
#[test]
fn test() {
assert_eq!(Solution::divisor_game(2), true);
assert_eq!(Solution::divisor_game(3), false);
}
```