require 'prime' n=gets.to_i resultL=nil resultH=n-1 div=[] Prime.prime_division(n).each{|e| div+=[e[0]]*e[1] } div.sort! if div.size==1 printf("%d %d",resultH,resultH) exit elsif div.size==2 printf("%d %d",div[0]+div[1]-2,resultH) exit end while div.size>3 a=div.shift b=div.shift div.unshift(a*b) div.sort! end printf("%d %d",div[0]+div[1]+div[2]-3,resultH)