Class: Integer
- Inherits:
-
Object
- Object
- Integer
- Defined in:
- lib/mathn.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.from_prime_division(pd) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/mathn.rb', line 37 def Integer.from_prime_division(pd) value = 1 for prime, index in pd value *= prime**index end value end |
Instance Method Details
#gcd2(int) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/mathn.rb', line 19 def gcd2(int) a = self.abs b = int.abs a, b = b, a if a < b pd_a = a.prime_division pd_b = b.prime_division gcd = 1 for pair in pd_a as = pd_b.assoc(pair[0]) if as gcd *= as[0] ** [as[1], pair[1]].min end end return gcd end |
#prime_division ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/mathn.rb', line 45 def prime_division raise ZeroDivisionError if self == 0 ps = Prime.new value = self pv = [] for prime in ps count = 0 while (value1, mod = value.divmod(prime) mod) == 0 value = value1 count += 1 end if count != 0 pv.push [prime, count] end break if prime * prime >= value end if value > 1 pv.push [value, 1] end return pv end |