Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาตัวเลขสองตัวที่มีให้ผลรวมและ GCD ใน C++


เรามีผลรวมและ gcd ของตัวเลขสองตัว a และ b เราต้องหาทั้งตัวเลข a และ b หากไม่สามารถทำได้ ให้คืนค่า -1 สมมติว่าผลรวมคือ 6 และ gcd คือ 2 จากนั้นตัวเลขคือ 4 และ 2

วิธีการนี้เหมือนกับที่ได้รับ GCD เป็นที่ทราบกันดีอยู่แล้วว่าตัวเลขจะเป็นทวีคูณของมัน มีขั้นตอนดังนี้

  • หากเราเลือกตัวเลขแรกเป็น GCD ตัวเลขที่สองจะเป็นผลรวม − GCD

  • หากผลรวมของตัวเลขถูกเลือกในขั้นตอนก่อนหน้าเท่ากับผลรวม ให้พิมพ์ตัวเลขทั้งสอง

  • มิฉะนั้นให้พิมพ์ -1 เนื่องจากไม่มีตัวเลข

ตัวอย่าง

#include <iostream>
#include <algorithm>
using namespace std;
void printTwoNumbers(int s, int g) {
   if (__gcd(g, s - g) == g && s != g)
      cout << "first number = " << min(g, s - g) << "\nsecond number = " << s - min(g, s - g) << endl;
   else
      cout << -1 << endl;
}
int main() {
   int sum = 6;
   int gcd = 2;
   printTwoNumbers(sum, gcd);
}

ผลลัพธ์

first number = 2
second number = 4