Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
10
Task/Arithmetic-Rational/Python/arithmetic-rational-1.py
Normal file
10
Task/Arithmetic-Rational/Python/arithmetic-rational-1.py
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
from fractions import Fraction
|
||||
|
||||
for candidate in range(2, 2**19):
|
||||
sum = Fraction(1, candidate)
|
||||
for factor in range(2, int(candidate**0.5)+1):
|
||||
if candidate % factor == 0:
|
||||
sum += Fraction(1, factor) + Fraction(1, candidate // factor)
|
||||
if sum.denominator == 1:
|
||||
print("Sum of recipr. factors of %d = %d exactly %s" %
|
||||
(candidate, int(sum), "perfect!" if sum == 1 else ""))
|
||||
33
Task/Arithmetic-Rational/Python/arithmetic-rational-2.py
Normal file
33
Task/Arithmetic-Rational/Python/arithmetic-rational-2.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
def lcm(a, b):
|
||||
return a // gcd(a,b) * b
|
||||
|
||||
def gcd(u, v):
|
||||
return gcd(v, u%v) if v else abs(u)
|
||||
|
||||
class Fraction:
|
||||
def __init__(self, numerator, denominator):
|
||||
common = gcd(numerator, denominator)
|
||||
self.numerator = numerator//common
|
||||
self.denominator = denominator//common
|
||||
def __add__(self, frac):
|
||||
common = lcm(self.denominator, frac.denominator)
|
||||
n = common // self.denominator * self.numerator + common // frac.denominator * frac.numerator
|
||||
return Fraction(n, common)
|
||||
def __sub__(self, frac):
|
||||
return self.__add__(-frac)
|
||||
def __neg__(self):
|
||||
return Fraction(-self.numerator, self.denominator)
|
||||
def __abs__(self):
|
||||
return Fraction(abs(self.numerator), abs(self.denominator))
|
||||
def __mul__(self, frac):
|
||||
return Fraction(self.numerator * frac.numerator, self.denominator * frac.denominator)
|
||||
def __div__(self, frac):
|
||||
return self.__mul__(frac.reciprocal())
|
||||
def reciprocal(self):
|
||||
return Fraction(self.denominator, self.numerator)
|
||||
def __cmp__(self, n):
|
||||
return int(float(self) - float(n))
|
||||
def __float__(self):
|
||||
return float(self.numerator / self.denominator)
|
||||
def __int__(self):
|
||||
return (self.numerator // self.denominator)
|
||||
Loading…
Add table
Add a link
Reference in a new issue