Find numbers a and b that satisfy the given conditions

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 numbersvoid 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 codeint 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 Codeif __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 numbersfunction 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 zambiatek!



