Check if A can be converted to B by reducing with a Prime number

• Last Updated : 05 Apr, 2021

Given two integers, A and B, the task is to find whether it is possible to make A equal to B if you are allowed to subtract a prime number P any number of times from A.
Examples:

Input: A = 10, B = 4
Output: YES
Explanation:
Let P = 2 and after subtracting it
three times from A
Input: A = 41, B = 40
Output: NO

Approach: The key observation in the problem is we have to represent the number A as

, As we know every number is divisible by some prime number except 1. Therefore if we find the difference of the number

and if the difference is greater than 1 then both the number can be made equal by subtracting a prime number X times from A.
Below is the implementation of the above approach:

C++

 `// C++ implementation to find if``// it is possible to make a equal to b` `#include ``using` `namespace` `std;` `// Function to find if``// it is possible to make``// A equal to B``bool` `isPossible(``int` `A, ``int` `B)``{``    ``return` `(A - B > 1);``}` `// Driver Code``int` `main()``{``    ``int` `A = 10, B = 4;``    ` `    ``// Function Call``    ``if` `(isPossible(A, B))``        ``cout << ``"Yes"``;``    ``else``        ``cout << ``"No"``;``    ``return` `0;``}`

Java

 `// Java implementation to find if``// it is possible to make a equal to b``class` `GFG{` `// Function to find if``// it is possible to make``// A equal to B``static` `boolean` `isPossible(``int` `A, ``int` `B)``{``    ``return` `(A - B > ``1``);``}` `// Driver Code``public` `static` `void` `main (String[] args)``{``    ``int` `A = ``10``, B = ``4``;``    ` `    ``// Function Call``    ``if` `(isPossible(A, B))``        ``System.out.print(``"Yes"``);``    ``else``        ``System.out.print(``"No"``);``}``}` `// This code is contributed by shivanisinghss2110`

Python3

 `# Python3 implementation to find if``# it is possible to make a equal to b` `# Function to find if``# it is possible to make``# A equal to B``def` `isPossible(A, B):` `    ``return` `(A ``-` `B > ``1``);` `# Driver Code``A ``=` `10``; B ``=` `4``;``    ` `# Function Call``if` `(isPossible(A, B)):``    ``print``(``"Yes"``);``else``:``    ``print``(``"No"``);` `# This code is contributed by Code_Mech`

C#

 `// C# implementation to find if``// it is possible to make a equal to b``using` `System;``class` `GFG{` `// Function to find if``// it is possible to make``// A equal to B``static` `bool` `isPossible(``int` `A, ``int` `B)``{``    ``return` `(A - B > 1);``}` `// Driver Code``public` `static` `void` `Main()``{``    ``int` `A = 10, B = 4;``    ` `    ``// Function Call``    ``if` `(isPossible(A, B))``        ``Console.Write(``"Yes"``);``    ``else``        ``Console.Write(``"No"``);``}``}` `// This code is contributed by Code_Mech`

Javascript

 ``
Output:
Yes

My Personal Notes arrow_drop_up