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++ 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 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 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# 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 |
<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> |
Output:
Yes
Time Complexity: O(1).
Space Complexity: O(1) as no extra space has been used.