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)