在C ++中找到满足给定条件的数字a和b

考虑我们有一个整数n。我们的任务是找到两个数字a和b,满足这三个条件。

  • a mod b = 0

  • a * b> n

  • a / b <n

如果找不到对,则打印-1。

例如,如果数字n = 10,则a和b可以是a = 90,b =10。这满足给定的规则。

为了解决这个问题,我们将按照以下步骤操作:

  • 令b = n。可以使用这三个条件找到

  • 当a是b的倍数时,mod b = 0

  • a / b <n,所以a / b = n – 1,即<n

  • (a * b> n)=> a = n

示例

#include<iostream>
using namespace std;
void findAandB(int n) {
   int b = n;
   int a = b * (n - 1);
   if (a * b > n && a / b < n) {
      cout << "a: " << a << endl;
      cout << "b: " << b;
   }else
      cout << -1 << endl;
   }
int main() {
   int n = 10;
   findAandB(n);
}

输出结果

a: 90
b: 10