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 <bits/stdc++.h> 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
<script> // Javascript 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 function isPossible(A, B) { return (A - B > 1); } let A = 10, B = 4; // Function Call if (isPossible(A, B)) document.write( "Yes" ); else document.write( "No" ); </script> |
Yes
Time Complexity: O(1).
Space Complexity: O(1) as no extra space has been used.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!