Find numbers a and b that satisfy the given conditions - GeeksforGeeks

07 Mar, 2022
Given an integer n, the task is to find two integers a and b which satisfy the below conditions:  
a % b = 0a * b > na / b < n
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.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
PHP
Javascript
// 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 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 implementation of the above approach # Function to print the required numbersdef 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# implementation of the above approachusing System; class GFG{ // Function to print the required numbersstatic 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 codepublic static void Main(){    int n = 10;    find(n);}} // This code is contributed// by Akanksha Rai
<?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..?>
<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)Auxiliary Space: O(1)
rituraj_jain
ankthon
Akanksha_Rai
inderDuMCA
suresh07
singhh3010
number-theory
Mathematical
number-theory
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Algorithm to solve Rubik's Cube
Program to print prime numbers from 1 to N.
Fizz Buzz Implementation
Program to multiply two matrices
Modular multiplicative inverse
Check if a number is Palindrome
Find first and last digits of a number
Count ways to reach the n'th stair
Program to convert a given number to words
Find Union and Intersection of two unsorted arrays