From 563cb2f865dcb3e10e7fe0cd3d8ca60a3e02e407 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 4 Nov 2021 18:12:56 +0100 Subject: Bash, bc, C, Lua, Node.js, Python and Ruby solutions for week 133, part 1. --- challenge-133/abigail/ruby/ch-1.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 challenge-133/abigail/ruby/ch-1.rb (limited to 'challenge-133/abigail/ruby') diff --git a/challenge-133/abigail/ruby/ch-1.rb b/challenge-133/abigail/ruby/ch-1.rb new file mode 100644 index 0000000000..efd3e4b8a0 --- /dev/null +++ b/challenge-133/abigail/ruby/ch-1.rb @@ -0,0 +1,14 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-1.rb < input-file +# + +ARGF . each_line do + |num| + puts ((Math . exp(Math . log(num . to_i) / 2)) . to_i) +end -- cgit From a0298e354570ba3ebf90abaeaf9f2af3b58702e7 Mon Sep 17 00:00:00 2001 From: Abigail Date: Fri, 5 Nov 2021 20:58:51 +0100 Subject: AWK, Bash, Lua, Node.js, Python and Ruby solutions for week 133, part 2. --- challenge-133/abigail/ruby/ch-2.rb | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 challenge-133/abigail/ruby/ch-2.rb (limited to 'challenge-133/abigail/ruby') 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 + -- cgit