aboutsummaryrefslogtreecommitdiff
path: root/challenge-136/abigail/ruby
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-10-25 19:19:23 +0200
committerAbigail <abigail@abigail.be>2021-10-25 19:19:23 +0200
commit812cf2fafa8824c9f98f27c2fc7bc8f008614330 (patch)
treedc6d2b914150677d778d582f6a07524802623b86 /challenge-136/abigail/ruby
parentf8a11d05ad884a0d97b17c5f21c40cdd6cf11659 (diff)
downloadperlweeklychallenge-club-812cf2fafa8824c9f98f27c2fc7bc8f008614330.tar.gz
perlweeklychallenge-club-812cf2fafa8824c9f98f27c2fc7bc8f008614330.tar.bz2
perlweeklychallenge-club-812cf2fafa8824c9f98f27c2fc7bc8f008614330.zip
Ruby solutions for week 136
Diffstat (limited to 'challenge-136/abigail/ruby')
-rw-r--r--challenge-136/abigail/ruby/ch-1.rb25
-rw-r--r--challenge-136/abigail/ruby/ch-2.rb21
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-136/abigail/ruby/ch-1.rb b/challenge-136/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..72ef8542f1
--- /dev/null
+++ b/challenge-136/abigail/ruby/ch-1.rb
@@ -0,0 +1,25 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+ARGF . each_line do
+ | line |
+ m, n = line . split . map {|x| x . to_i}
+ gcd = m . gcd (n)
+ valid = 0
+ if gcd > 1 then
+ while gcd % 2 == 0 do
+ gcd /= 2
+ end
+ if gcd == 1 then
+ valid = 1
+ end
+ end
+ puts (valid)
+end
diff --git a/challenge-136/abigail/ruby/ch-2.rb b/challenge-136/abigail/ruby/ch-2.rb
new file mode 100644
index 0000000000..d1bd264ff6
--- /dev/null
+++ b/challenge-136/abigail/ruby/ch-2.rb
@@ -0,0 +1,21 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-2.rb < input-file
+#
+
+def count (target, this_fib, prev_fib)
+ return target < this_fib ? 0
+ : target == this_fib ? 1
+ : count(target - this_fib, this_fib + prev_fib, this_fib) +
+ count(target, this_fib + prev_fib, this_fib)
+end
+
+ARGF . each_line do
+ | line |
+ puts (count(line . to_i, 1, 1))
+end