Prime_minister
Take a name and replace A with 1, B with 2 .. and so on.
Add the numbers. If it is a prime number.. the name is a prime name.
require 'prime'
require 'colorize'
def prime_minister?(name)
name
.upcase
.gsub(/[^A-Z]/, '')
.codepoints
.map {|i| i - 64}
.sum
end
%w(
Donald_Trump
Kamala_Harris
Joe_Biden
Jesus_Christ
Adolf_Hitler
Sherlock_Holmes
Scooby_Doo
Doctor_Watson
Dr_Mengele
Joe_Hill
John_Travolta
Ringo_Starr
John_Lennon
George_Bush
Ronald_Reagan
Jimmy_Carter
Richard_Nixon
John_F_Kennedy
prime
sixty_one
Matt_Gaetz
Wisconsin
Alabama
Texas
Ohio
).each {|name|
val = prime_minister?(name)
name = name.colorize(val.prime? ? :light_blue : :red)
puts '%s : %s (%s)' % [name, val, val.prime?]
}
Donald_Trump : 138 (false)
Kamala_Harris : 112 (false)
Joe_Biden : 64 (false)
* Jesus_Christ : 151 (true)
Adolf_Hitler : 110 (false)
* Sherlock_Holmes : 163 (true)
* Scooby_Doo : 113 (true)
* Doctor_Watson : 167 (true)
* Dr_Mengele : 83 (true)
* Joe_Hill : 71 (true)
John_Travolta : 156 (false)
* Ringo_Starr : 139 (true)
John_Lennon : 121 (false)
* George_Bush : 107 (true)
Ronald_Reagan : 110 (false)
Jimmy_Carter : 135 (false)
* Richard_Nixon : 137 (true)
* John_F_Kennedy : 131 (true)
* prime : 61 (true)
* sixty_one : 131 (true)
* Matt_Gaetz : 113 (true)
Wisconsin : 125 (false)
* Alabama : 31 (true)
Texas : 69 (false)
* Ohio : 47 (true)