Given an integer n, the task is to find two integers a and b which satisfy the below conditions:
- a % b = 0
- a * b > n
- a / b < n
If no pair satisfies the above conditions then print -1.
Note: There can be multiple (a, b) pairs satisfying the above conditions for n.
Examples:
Input: n = 10 Output: a = 90, b = 10 90 % 10 = 0 90 * 10 = 900 > 10 90 / 10 = 9 < 10 All three conditions are satisfied. Input: n = 1 Output: -1
Approach: Let’s suppose b = n, by taking this assumption a can be found based on the given conditions:
- (a % b = 0) => a should be multiple of b.
- (a / b < n) => a / b = n – 1 which is < n.
- (a * b > n) => a = n.
Algorithm :
Step 1: Start
Step 2: Create a static function called to find which takes an integer value as input.
Step 3: Create a variable called b and initialize it with the input integer n.
Step 4: Now, create another variable called a and store the multiplication of b and (n-1) in it.
Step 5: Now, set the condition If (a * b > n) and (a / b < n), then print the values of a and b else print -1.
Step 6: End
Below is the implementation of the above approach:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std; // Function to print the required numbers void find( int n) { // Suppose b = n and we want a % b = 0 and also // (a / b) < n so a = b * (n - 1) int b = n; int a = b * (n - 1); // Special case if n = 1 // we get a = 0 so (a * b) < n if (a * b > n && a / b < n) { cout << "a = " << a << ", b = " << b; } // If no pair satisfies the conditions else cout << -1 << endl; } // Driver code int main() { int n = 10; find(n); return 0; } |
Java
// Java implementation of the above approach public class GFG{ // Function to print the required numbers static void find( int n) { // Suppose b = n and we want a % b = 0 and also // (a / b) < n so a = b * (n - 1) int b = n; int a = b * (n - 1 ); // Special case if n = 1 // we get a = 0 so (a * b) < n if (a * b > n && a / b < n) { System.out.print( "a = " + a + ", b = " + b); } // If no pair satisfies the conditions else System.out.println(- 1 ); } // Driver code public static void main(String []args) { int n = 10 ; find(n); } // This code is contributed by Ryuga } |
Python3
# Python3 implementation of the above approach # Function to print the required numbers def find(n): # Suppose b = n and we want a % b = 0 # and also (a / b) < n so a = b * (n - 1) b = n a = b * (n - 1 ) # Special case if n = 1 # we get a = 0 so (a * b) < n if a * b > n and a / / b < n: print ( "a = {}, b = {}" . format (a, b)) # If no pair satisfies the conditions else : print ( - 1 ) # Driver Code if __name__ = = "__main__" : n = 10 find(n) # This code is contributed by Rituraj Jain |
C#
// C# implementation of the above approach using System; class GFG { // Function to print the required numbers static void find( int n) { // Suppose b = n and we want a % b = 0 // and also (a / b) < n so a = b * (n - 1) int b = n; int a = b * (n - 1); // Special case if n = 1 // we get a = 0 so (a * b) < n if (a * b > n && a / b < n) { Console.Write( "a = " + a + ", b = " + b); } // If no pair satisfies the conditions else Console.WriteLine(-1); } // Driver code public static void Main() { int n = 10; find(n); } } // This code is contributed // by Akanksha Rai |
PHP
<?php // PHP implementation of the above approach // Function to print the required numbers function find( $n ) { // Suppose b = n and we want a % b = 0 and also // (a / b) < n so a = b * (n - 1) $b = $n ; $a = $b * ( $n - 1); // Special case if n = 1 // we get a = 0 so (a * b) < n if ( $a * $b > $n && $a / $b < $n ) { echo "a = " , $a , ", b = " , $b ; } // If no pair satisfies the conditions else echo -1 ; } // Driver code $n = 10; find( $n ); // This code is contributed // by inder_verma.. ?> |
Javascript
<script> // Javascript implementation of the above approach // Function to print the required numbers function find(n) { // Suppose b = n and we want a % b = 0 // and also (a / b) < n so a = b * (n - 1) let b = n; let a = b * (n - 1); // Special case if n = 1 // we get a = 0 so (a * b) < n if (a * b > n && a / b < n) { document.write( "a = " + a + ", b = " + b); } // If no pair satisfies the conditions else document.write(-1); } let n = 10; find(n); // This code is contributed by surehs07. </script> |
a = 90, b = 10
Time Complexity: O(1), since there is no loop or recursion.
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!