Example #1
0
void RED_Q_Q(fraction &RED)
{
	integer NOD;
	
	NOD = GCF_NN_N(ABS_Z_N(RED.numenator), RED.denominator); //Ищем НОД числителя и знаменатель
	
	RED.numenator = DIV_ZZ_Z(ABS_Z_N(RED.numenator), NOD); //Делим числитель на НОД
	RED.denominator = DIV_ZZ_Z(RED.denominator, NOD);//Делим знаменатель на НОД
}
Example #2
0
struct RATIONAL RED_QQ_Q (struct RATIONAL a)
  {
    struct RATIONAL b; //Возвращаемая дробь
  	struct NATURAL NOD=GCF_NN_N(a.numerator,a.denominator); //НОД числителя и знаменателя
  	b.numerator=DIV_ZZ_Z(a.numerator,NOD);
  	b.denominator=DIV_ZZ_Z(a.denominator,NOD);
  	b.sign=a.sign;
  	return b;
  }
Example #3
0
/*FAC_P_PQ
Описание:
	Вынесение из многочлена НОК знаменателей коэффициентов и НОД числителей
Подключаемые модули:
	TRANS_N_Z
	LCM_NN_N
	GCF_NN_N
	DIV_ZZ_Z
Описание переменных:
	polinom - исходный многочлен
        newpolinom - новый многочлен
Авторы:        
        Вовк Кирилл
        Эмомов Голибджон
Группа:
        4305
*/
POLYNOMIAL FAC_P_PQ(POLYNOMIAL polinom)
{
    POLYNOMIAL newpolinom = polinom;
    NATURAL nok = polinom.factors[0].denominator;
    NATURAL nod = polinom.factors[0].numerator;
    for(int i = 1;i < polinom.degree;i++)
    {
       nok = LCM_NN_N(nok,polinom.factors[i].denominator); // НОК знаменателей
       nod = GCF_NN_N(nod,polinom.factors[i].numerator); // НОД числетелей
    }
    for(int i = 0;i < polinom.degree;i++)
    {
        newpolinom.factors[i].denominator = 1;
        newpolinom.factors[i].numerator = DIV_ZZ_Z(TRANS_N_Z(nok),polinom.factors[i].denominator) * DIV_ZZ_Z(TRANS_N_Z(polinom.factors[i].numerator,nod); // подсчет коэффициентов нового многочлена
    }
    return newpolinom;
}