Ejemplo n.º 1
0
 def sum(a, b):
     a1 = Natural(str(a))
     b1 = Natural(str(b))
     if a1<b1:
         a1,b1 = b1,a1
     text = a1, "//", b1, "=", a1 // b1
     return text
Ejemplo n.º 2
0
 def __pow__(self, oth):
     '''Возведение целого числа в степень, Васильев Максим'''
     a = Natural(str(self.abs()))
     b = Natural(str(oth.abs()))
     # Результат - возведение натурального a в b
     res = Integer(str(a**b))
     # Отрицательность получается из соображений четности степени
     if self.negative and (b % Natural('2') == Natural('1')):
         res.negative = self.negative
     # Возвращаем <object Integer>
     return res
Ejemplo n.º 3
0
 def __init__(self, str):
     '''Конструктор рационального числа, Васильев Максим'''
     # self.numer - хранит числитель (numerator), self.denom
     # хранит знаменатель (denominant), числа вводятся в виде
     # num/den
     a = str.split('/')
     self.numer = Integer(a[0])
     self.denom = Natural(a[1])
Ejemplo n.º 4
0
 def toi(self):
     '''Преобразование в целое рационального, Васильев Максим'''
     self.red()
     # Если знаменатель после сокращения равен 1 - то число целое
     if self.denom == Natural('1'):
         # Возвращаем <object Integer>
         return Integer(str(self.numer))
     return self
Ejemplo n.º 5
0
 def turn(self):
     '''Получение вида 1/x - для дроби, Васильев Максим'''
     # Числитель становится знаменателем
     # Знаменатель числителем
     n_den = Natural(str(self.numer.abs()))
     n_num = Integer(str(self.denom))
     n_num.negative = self.numer.negative
     # Возвращаем <object Rational>
     return Rational(str(n_num) + '/' + str(n_den))
Ejemplo n.º 6
0
 def toContinued(self):
     '''Дробь в непрерывную, Васильев Максим'''
     a = Natural(str(self.numer.abs()))
     b = Natural(str(self.denom))
     res = ''
     # Применяем алгоритм Евклида к дробям, записываем
     # в res строку вида '1 2 3 4 5' где цифры - остатки
     # от деления
     while not a.isZero() and not b.isZero():
         if a > b:
             res += str(a // b) + ' '
             a = a % b
         else:
             res += str(b // a) + ' '
             b = b % a
     # Вызываем функцию которая возвращает красивое представление
     # непрерывной дроби
     # Возвращает <object String>
     return contForm(res)
Ejemplo n.º 7
0
 def abs(integer):
     '''ABS_Z_N Абсолютная величина числа, Васильев Максим'''
     return Natural(''.join(str(i) for i in reversed(integer.digits)))
Ejemplo n.º 8
0
 def ton(self):
     '''Преобразование Integer->Natural, Васильев Максим'''
     # Возвращаем <object Natural>
     return Natural(str(self.abs()))
Ejemplo n.º 9
0
 def division(a):
     a1 = Natural(str(a))
     text = "Количество простых чисел до " + a + " = "+ str(Natural.primes(a1))
     return text
Ejemplo n.º 10
0
 def sum(a, b):
     a1 = Natural(str(a))
     b1 = Natural(str(b))
     text = a + "**" + b + "=" + str(a1 ** b1)
     return text
Ejemplo n.º 11
0
 def sum(a, b):
     a1 = Natural(str(a))
     b1 = Natural(str(b))
     text = "LCM( "+ a + "," + b + " ) = " + str(Natural.lcm(a1, b1))
     return text
Ejemplo n.º 12
0
 def sum(a, b):
     a1 = Natural(str(a))
     b1 = Natural(str(b))
     text = "GCD( "+ a +" , "+ b +" ) = " + str(Natural.gcd(a1,b1))
     return text
Ejemplo n.º 13
0
 def sum(a, b):
     a1 = Natural(str(a))
     b1 = Natural(str(b))
     text = str(a1) + " % " + str(b1) + " = " + str(a1 % b1)
     return text
Ejemplo n.º 14
0
 def sum(a, b):
     a1 = Natural(str(a))
     b1 = Natural(str(b))
     text = a1, "*", b1, "=", a1 * b1
     return text
Ejemplo n.º 15
0
 def division(a):
     a1 = Natural(str(a))
     text = "fi(" + a + ") = "+ str(Natural.eilerfi(a1))
     return text
Ejemplo n.º 16
0
 def division(a):
     a1 = Natural(str(a))
     text = a + " = "+ cortarrtostr(a1.factorize())
     return text