Divisor Game

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:

Input:  N=10
Output:  true

Approach

Java

public class DivisorGame {
    public static void main(String[] args) {
        int n = 10;
        System.out.println(divisorGame(n));
    }

    static boolean divisorGame(int N) {
        if (N % 2 == 0)
            return true;
        return false;
    }
}

C++

#include <bits/stdc++.h>
using namespace std;

bool divisorGame(int N
{
        if(N%2==0)
              return true;
        return false;
}

int main()
{
    int n=10;
    if(divisorGame(n))
      cout<<"true";
    else
      cout<<"false";

    return 0;
}


No comments:

Post a Comment