给定一个整数n ,任务是找到两个满足以下条件的整数a和b :
- a%b = 0
- a * b> n
- a / b
如果没有一对满足上述条件,则打印-1 。
注意:对于n ,可以有多个(a,b)对满足上述条件。
例子:
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
方法:假设b = n ,通过采用此假设,可以根据给定条件找到a :
- (a%b = 0) => a应该是b的倍数。
- (a / b
=> a / b = n – 1 ,即 。 - (a * b> n) => a = n
下面是上述方法的实现:
C++
// C++ implementation of the above approach
#include
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
$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..
?>
输出:
a = 90, b = 10