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

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 

A = B + X * P



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

A - B

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Output: 
Yes

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.