Find third number such that sum of all three number becomes prime
Given two numbers A and B. The task is to find the smallest positive integer greater than or equal to 1 such that the sum of all three numbers become a prime number.
Examples:
Input: A = 2, B = 3
Output: 2
Explanation:
The third number is 2 because if we add all three number the
sum obtained is 7 which is a prime number.
Input: A = 5, B = 3
Output: 3
Approach:
- First of all store the sum of given 2 number in sum variable.
- Now, check if bitwise and (&) of sum and 1 is equal to 1 or not (checking if the number is odd or not).
- If it is equal to 1 then assign 2 to variable temp and go to step 4.
- Else check sum value of sum and temp variable whether it is prime number or not. If prime, then print the value of temp variable else add 2 to temp variable until it is less than a prime value.
Below is the implementation of the above approach:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std; // Function that will check // whether number is prime or not bool prime( int n) { for ( int i = 2; i * i <= n; i++) { if (n % i == 0) return false ; } return true ; } // Function to print the 3rd number void thirdNumber( int a, int b) { int sum = 0, temp = 0; sum = a + b; temp = 1; // If the sum is odd if (sum & 1) { temp = 2; } // If sum is not prime while (!prime(sum + temp)) { temp += 2; } cout << temp; } // Driver code int main() { int a = 3, b = 5; thirdNumber(a, b); return 0; } |
Java
// Java implementation of the approach import java.util.*; class GFG { // Function that will check // whether number is prime or not static boolean prime( int n) { for ( int i = 2 ; i * i <= n; i++) { if (n % i == 0 ) return false ; } return true ; } // Function to print the 3rd number static void thirdNumber( int a, int b) { int sum = 0 , temp = 0 ; sum = a + b; temp = 1 ; // If the sum is odd if (sum == 0 ) { temp = 2 ; } // If sum is not prime while (!prime(sum + temp)) { temp += 2 ; } System.out.print(temp); } // Driver code static public void main (String []arr) { int a = 3 , b = 5 ; thirdNumber(a, b); } } // This code is contributed by 29AjayKumar |
Python3
# Python3 implementation of the above approach # Function that will check # whether number is prime or not def prime(n): for i in range ( 2 , n + 1 ): if i * i > n + 1 : break if (n % i = = 0 ): return False return True # Function to print the 3rd number def thirdNumber(a, b): summ = 0 temp = 0 summ = a + b temp = 1 #If the summ is odd if (summ & 1 ): temp = 2 #If summ is not prime while (prime(summ + temp) = = False ): temp + = 2 print (temp) # Driver code a = 3 b = 5 thirdNumber(a, b) # This code is contributed by Mohit Kumar |
C#
// C# implementation of the above approach using System; class GFG { // Function that will check // whether number is prime or not static bool prime( int n) { for ( int i = 2; i * i <= n; i++) { if (n % i == 0) return false ; } return true ; } // Function to print the 3rd number static void thirdNumber( int a, int b) { int sum = 0, temp = 0; sum = a + b; temp = 1; // If the sum is odd if (sum == 0) { temp = 2; } // If sum is not prime while (!prime(sum + temp)) { temp += 2; } Console.Write (temp); } // Driver code static public void Main () { int a = 3, b = 5; thirdNumber(a, b); } } // This code is contributed by Sachin. |
Javascript
<script> // Javascript implementation of the above approach // Function that will check // whether number is prime or not function prime(n) { for (let i = 2; i * i <= n; i++) { if (n % i == 0) return false ; } return true ; } // Function to print the 3rd number function thirdNumber(a, b) { let sum = 0, temp = 0; sum = a + b; temp = 1; // If the sum is odd if ((sum & 1) != 0) { temp = 2; } // If sum is not prime while (!prime(sum + temp)) { temp += 2; } document.write(temp); } let a = 3, b = 5; thirdNumber(a, b); // This code is contributed by divyeshrabadiya07. </script> |
Output:
3
Time Complexity: O(sqrt(n))
Auxiliary Space: O(1)
Please Login to comment...