From bb763d664431bd17f12a629adbc5fa7a244c69d0 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Fri, 25 Dec 2020 08:46:19 -0800 Subject: [PATCH] [2020][ruby][25] --- 2020/ruby/day_25.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 2020/ruby/day_25.rb diff --git a/2020/ruby/day_25.rb b/2020/ruby/day_25.rb new file mode 100644 index 0000000..9a18ffe --- /dev/null +++ b/2020/ruby/day_25.rb @@ -0,0 +1,17 @@ +def transform(subject_number) + return enum_for(__method__, subject_number) unless block_given? + + value = 1 + (0..).each do |loop_size| + yield [loop_size, value] + value *= subject_number + value %= 20201227 + end +end + +public_keys = ARGF.read.scan(/\d+/).map(&:to_i) + +loop_size, _ = transform(7).find {|_,v| v == public_keys.first } +_, encryption_key = transform(public_keys.last).find {|i,_| i == loop_size } + +p encryption_key