Open In App

Find numbers a and b that satisfy the given conditions

Last Updated : 25 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given an integer n, the task is to find two integers a and b which satisfy the below conditions: 
 

  1. a % b = 0
  2. a * b > n
  3. 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>


Output: 

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.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads