Для нахождения наибольшей правильной несократимой дроби с суммой числителя и знаменателя равной n, можно воспользоваться следующим алгоритмом:
Завести переменную maxFraction со значением 0.Пройти в цикле от 1 до n//2 (т.к. мы ищем наибольшую дробь, числитель и знаменатель которой могут быть равны только до n//2).Для каждого числа i вычислить числитель как n - i, и знаменатель как i.Найти НОД числителя и знаменателя с помощью алгоритма Евклида.Если числитель делится на НОД, и знаменатель делится на НОД, то полученная дробь является несократимой.Если текущая дробь больше maxFraction, обновить maxFraction.
Ниже приведен пример программы на C++, реализующей данный алгоритм:
#include <iostream> using namespace std; int gcd(int a, int b) { if (a == 0) return b; return gcd(b % a, a); } void findMaxFraction(int n, int &numerator, int &denominator) { int maxFraction = 0; for (int i = 1; i <= n / 2; i++) { int numer = n - i; int denom = i; int commonDivisor = gcd(numer, denom); if (numer % commonDivisor == 0 && denom % commonDivisor == 0) { if (denom > maxFraction) { maxFraction = denom; numerator = numer; denominator = denom; } } } } int main() { int n; cout << "Enter the sum of numerator and denominator: "; cin >> n; int numerator, denominator; findMaxFraction(n, numerator, denominator); cout << "The largest irreducible fraction with numerator + denominator = " << n << " is: " << numerator << "/" << denominator << endl; return 0; }
Вы можете скомпилировать и запустить эту программу на своем компьютере, чтобы найти наибольшую правильную несократимую дробь с суммой числителя и знаменателя, равной n.
Для нахождения наибольшей правильной несократимой дроби с суммой числителя и знаменателя равной n, можно воспользоваться следующим алгоритмом:
Завести переменную maxFraction со значением 0.Пройти в цикле от 1 до n//2 (т.к. мы ищем наибольшую дробь, числитель и знаменатель которой могут быть равны только до n//2).Для каждого числа i вычислить числитель как n - i, и знаменатель как i.Найти НОД числителя и знаменателя с помощью алгоритма Евклида.Если числитель делится на НОД, и знаменатель делится на НОД, то полученная дробь является несократимой.Если текущая дробь больше maxFraction, обновить maxFraction.Ниже приведен пример программы на C++, реализующей данный алгоритм:
#include <iostream>using namespace std;
int gcd(int a, int b) {
if (a == 0)
return b;
return gcd(b % a, a);
}
void findMaxFraction(int n, int &numerator, int &denominator) {
int maxFraction = 0;
for (int i = 1; i <= n / 2; i++) {
int numer = n - i;
int denom = i;
int commonDivisor = gcd(numer, denom);
if (numer % commonDivisor == 0 && denom % commonDivisor == 0) {
if (denom > maxFraction) {
maxFraction = denom;
numerator = numer;
denominator = denom;
}
}
}
}
int main() {
int n;
cout << "Enter the sum of numerator and denominator: ";
cin >> n;
int numerator, denominator;
findMaxFraction(n, numerator, denominator);
cout << "The largest irreducible fraction with numerator + denominator = " << n << " is: " << numerator << "/" << denominator << endl;
return 0;
}
Вы можете скомпилировать и запустить эту программу на своем компьютере, чтобы найти наибольшую правильную несократимую дробь с суммой числителя и знаменателя, равной n.