Для нахождения наибольшей правильной несократимой дроби с суммой числителя и знаменателя равной 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.