require 'prime' class GingaPrime attr_reader :list def initialize ga = '101000000100'.to_i nn = '010100101001'.to_i gi = '000011010000'.to_i ma = '000000000010'.to_i @list = (1..9).to_a.product(1.step(9, 2).to_a, (0..9).to_a, (0..9).to_a). select { |vars| (vars.size - vars.uniq.size).zero? }. map { |a, b, c, d| ga * a + nn * b + gi * c + ma * d }. select { |n| n.prime? } end end if __FILE__ == $0 gp = GingaPrime.new puts gp.list puts "There are #{gp.list.size} ginga primes." puts "Max is #{gp.list.max}." puts "Min is #{gp.list.min}" end
Standard input is empty
131322323183 131366363123 131366363173 131388383173 131399393183 171700707127 171722727107 171755757137 171755757197 171766767157 171766767197 171799797187 191900909129 191933939129 191933939179 191944949159 191977979189 212100101261 212133131201 212155151231 212155151281 212155151291 212166161231 212166161281 212188181201 212188181251 212199191251 212199191261 232311313243 232344343213 232355353273 232366363253 232399393243 232399393283 272700707267 272711717207 272711717297 272744747287 272755757297 272788787237 292933939279 292933939289 292944949279 292966969219 313122121381 313188181321 313199191301 373722727387 373755757367 373766767397 373788787357 373788787367 393900909379 393922929349 393944949379 393955959389 393966969359 393966969379 393977979319 414100101491 414122121401 414122121431 414166161401 414199191421 434300303453 434355353423 434399393413 434399393423 474722727407 474788787427 474799797427 474799797487 494900909479 494955959489 494988989419 494988989479 515122121581 515166161581 515166161591 515188181591 515199191531 515199191561 535377373513 575700707587 575711717527 575744747537 575766767507 575788787527 575788787537 575799797537 595900909529 595911919529 595944949529 595977979589 616144141621 616188181601 636311313623 636344343623 676700707687 676722727657 676722727697 676733737607 676733737627 676744747687 676744747697 676755757607 676799797637 696911919629 696911919689 696922929679 696933939629 696955959619 696988989629 696988989659 717100101721 717144141751 717155151731 717155151781 717199191721 737300303783 737322323713 737355353723 737366363743 737399393713 737399393723 797900909719 797911919759 797988989729 818100101821 818100101891 818133131801 818133131821 818144141851 818144141861 818144141891 818199191801 838300303823 838300303873 838344343813 838366363853 838399393813 878711717857 878711717867 878722727867 878733737867 878744747897 878766767897 898911919849 898933939859 898955959829 919100101981 919133131951 919177171981 939300303983 939311313973 939344343923 939344343953 939344343983 939355353983 939366363953 939377373943 979711717937 979722727967 979744747967 979755757927 979788787907 979788787927 There are 167 ginga primes. Max is 979788787927. Min is 131322323183