diff options
Diffstat (limited to 'challenge-133/abigail/ruby/ch-2.rb')
| -rw-r--r-- | challenge-133/abigail/ruby/ch-2.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/challenge-133/abigail/ruby/ch-2.rb b/challenge-133/abigail/ruby/ch-2.rb new file mode 100644 index 0000000000..22b3bae8f0 --- /dev/null +++ b/challenge-133/abigail/ruby/ch-2.rb @@ -0,0 +1,53 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-2.rb +# + +$small_primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31] + +def factorize (num) + factors = [] + $small_primes . each do + | prime | + while num % prime == 0 do + factors . push(prime) + num /= prime + end + end + if num > 1 then + factors . push (num) + end + return (factors) +end + + +def digit_sum (numbers) + sum = 0 + numbers . each do + | num | + while num > 0 do + sum += num % 10 + num /= 10 + end + end + return sum +end + + +number = 1 +count = 0 + +while count < 10 do + factors = factorize(number) + if factors . length > 1 and digit_sum([number]) == digit_sum(factors) then + puts (number) + count += 1 + end + number += 1 +end + |
