From ada8b466f3fe8efcf3b85f22495c744517df42ca Mon Sep 17 00:00:00 2001 From: Abigail Date: Wed, 5 Jan 2022 20:35:32 +0100 Subject: Week 3: copied solutions from week 123. Week 123 has exactly the same challenge. Since I prefer that solution, I copied those results. Tests adjusted accordingly. --- challenge-003/abigail/ruby/ch-1.rb | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'challenge-003/abigail/ruby') diff --git a/challenge-003/abigail/ruby/ch-1.rb b/challenge-003/abigail/ruby/ch-1.rb index c0a22397b0..d07d858bda 100644 --- a/challenge-003/abigail/ruby/ch-1.rb +++ b/challenge-003/abigail/ruby/ch-1.rb @@ -1,26 +1,29 @@ #!/usr/bin/ruby # -# See ../README.md +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-003 # # # Run as: ruby ch-1.rb < input-file # -ARGF . each_line do |_| - max = _ . to_i - base2 = 1 - while base2 <= max - base3 = base2 - while base3 <= max - base5 = base3 - while base5 <= max - puts base5 - base5 *= 5 - end - base3 *= 3 - end - base2 *= 2 - end +ugly = [1] +next_2 = 0 +next_3 = 0 +next_5 = 0 + +ARGF . each_line do + |n| + n = n . to_i + while ugly . length < n do + ugly . push ([2 * ugly [next_2], + 3 * ugly [next_3], + 5 * ugly [next_5]] . min) + + next_2 += 1 if 2 * ugly [next_2] <= ugly [-1] + next_3 += 1 if 3 * ugly [next_3] <= ugly [-1] + next_5 += 1 if 5 * ugly [next_5] <= ugly [-1] + end + puts (ugly [n - 1]) end -- cgit From e22456cd4100b9d24449a0a1623236f0b5ecb412 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 6 Jan 2022 01:47:00 +0100 Subject: Week 3, part 2: fix references --- challenge-003/abigail/ruby/ch-2.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'challenge-003/abigail/ruby') diff --git a/challenge-003/abigail/ruby/ch-2.rb b/challenge-003/abigail/ruby/ch-2.rb index 85736b99cb..1712bedc83 100644 --- a/challenge-003/abigail/ruby/ch-2.rb +++ b/challenge-003/abigail/ruby/ch-2.rb @@ -1,7 +1,7 @@ #!/usr/bin/ruby # -# See ../README.md +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-003 # # -- cgit