Tuesday, January 14, 2025
Google search engine
HomeData Modelling & AIFind numbers a and b that satisfy the given conditions

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: 
 

  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.

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments