$primes = (2...64).to_a.filter {|i| j = Math.sqrt(i).floor flag = true (2..j).each {|k| if i % k == 0 flag = false end } flag } $squares = (2...64).to_a.filter {|i| i * i <= 64 - 1 }.map{|i| i * i } $cubes = (2...64).to_a.filter {|i| i * i * i <= 64 - 1 }.map{|i| i * i * i } $perfects = [6, 28] n = gets.chomp.to_i def is_prime(n) $primes.include?(n) end def is_sq(n) $squares.include?(n) end def is_cube(n) $cubes.include?(n) end def is_perfect(n) $perfects.include?(n) end response = if is_prime(n) then "Sosu!" elsif is_sq(n) then "Heihosu!" elsif is_cube(n) then "Ripposu!" elsif is_perfect(n) then "Kanzensu!" else n end puts response