fork(4) download
  1. require 'prime'
  2.  
  3. class GingaPrime
  4. attr_reader :list
  5.  
  6. def initialize
  7. ga = '101000000100'.to_i
  8. nn = '010100101001'.to_i
  9. gi = '000011010000'.to_i
  10. ma = '000000000010'.to_i
  11.  
  12. @list = (1..9).to_a.product(1.step(9, 2).to_a, (0..9).to_a, (0..9).to_a).
  13. select { |vars| (vars.size - vars.uniq.size).zero? }.
  14. map { |a, b, c, d| ga * a + nn * b + gi * c + ma * d }.
  15. select { |n| n.prime? }
  16. end
  17. end
  18.  
  19. if __FILE__ == $0
  20. gp = GingaPrime.new
  21. puts gp.list
  22. puts "There are #{gp.list.size} ginga primes."
  23. puts "Max is #{gp.list.max}."
  24. puts "Min is #{gp.list.min}"
  25. end
  26.  
Success #stdin #stdout 1.69s 29712KB
stdin
Standard input is empty
stdout
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