/// <summary> /// Умножение дробей /// </summary> /// <param name = "A"> Дробь 1 </param> /// <param name = "B"> Дробь 2 </param> /// <returns> Перемноженные дроби </returns> public static Rational Run(Rational A, Rational B) { Rational ret = new Rational(new Digit(new int[] { }), new Digit(new int[] { })); ret.Numerator = Z_8.Run(A.Numerator, B.Numerator); ret.Denominator = N_8.Run(A.Denominator, B.Denominator); return(Q_1.Run(ret.Clear())); }
/// <summary> /// сокращение дроби /// </summary> /// <param name="A"> Дробь </param> /// <returns>Будет возвращенa сокращенная дробь </returns> public static Rational Run(Rational A) { if (A.Clear().Numerator[0] == 0 && A.Numerator.Length == 1) { return(new Rational("0")); } Natural HOD = N_13.Run(Z_5.Run(new Digit(A.Denominator)), Z_5.Run(A.Numerator)); // Находим НОД числителя и знаменателя A.Numerator = Z_9.Run(A.Numerator, HOD); //Сокращаем числитель на НОД числителя и знаменятеля A.Denominator = N_11.Run(A.Denominator, HOD); // Сокращаем знаменатель на нод return(A); }