Cho N, tìm a, b thỏa mãn: a + b = N và a * b = N.
Giải phương trình
Từ a + b = N → b = N - a. Thay vào tích: a(N-a) = N → a² - Na + N = 0.
Định thức: Δ = N² - 4N. Cần Δ ≥ 0 → N ≤ 0 hoặc N ≥ 4.
Nghiệm: a,b = (N ± √(N²-4N)) / 2.
Code C++
#include <bits/stdc++.h>
using namespace std;
void findAB(double N) {
double delta = N*N - 4*N;
if (delta < 0) { cout << "NO\n"; return; }
double a = (N + sqrt(delta)) / 2;
double b = (N - sqrt(delta)) / 2;
cout << "A = " << a << ", B = " << b << endl;
}
int main() {
findAB(57.0); // A = 55.9818, B = 1.01819
findAB(4.0); // A = 2, B = 2
findAB(3.0); // NO
return 0;
}
Kết quả
A = 55.9818, B = 1.01819 A = 2, B = 2 NO
Lưu ý: N phải ≥ 4 hoặc ≤ 0 để có nghiệm thực. Với số nguyên, chỉ N=4 cho nghiệm nguyên (2,2).