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++ 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 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 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# 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 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.. ?> |
<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.