Unprimeable numbers: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
(→{{header|Ruby}}: Add Ruby) |
||
Line 2,903: | Line 2,903: | ||
</pre> |
</pre> |
||
=={{header|Ruby}}== |
|||
<syntaxhighlight lang="ruby">require 'prime' |
|||
def unprimable?(n) |
|||
digits = %w(0 1 2 3 4 5 6 7 8 9) |
|||
s = n.to_s |
|||
size = s.size |
|||
(size-1).downto(0) do |i| |
|||
digits.each do |d| |
|||
cand = s.dup |
|||
cand[i]=d |
|||
return false if cand.to_i.prime? |
|||
end |
|||
end |
|||
true |
|||
end |
|||
ups = Enumerator.new {|y| (1..).each{|n| y << n if unprimable?(n)} } |
|||
ar = ups.first(600) |
|||
puts "First 35 unprimables:", ar[0,35].join(" ") |
|||
puts "\n600th unprimable:", ar.last, "" |
|||
(0..9).each do |d| |
|||
print "First unprimeable with last digit #{d}: " |
|||
puts (1..).detect{|k| unprimable?(k*10+d)}*10 + d |
|||
end |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre>First 35 unprimables: |
|||
200 204 206 208 320 322 324 325 326 328 510 512 514 515 516 518 530 532 534 535 536 538 620 622 624 625 626 628 840 842 844 845 846 848 890 |
|||
600th unprimable: |
|||
5242 |
|||
First unprimeable with last digit 0: 200 |
|||
First unprimeable with last digit 1: 595631 |
|||
First unprimeable with last digit 2: 322 |
|||
First unprimeable with last digit 3: 1203623 |
|||
First unprimeable with last digit 4: 204 |
|||
First unprimeable with last digit 5: 325 |
|||
First unprimeable with last digit 6: 206 |
|||
First unprimeable with last digit 7: 872897 |
|||
First unprimeable with last digit 8: 208 |
|||
First unprimeable with last digit 9: 212159 |
|||
</pre> |
|||
=={{header|Rust}}== |
=={{header|Rust}}== |
||
{{trans|C++}} |
{{trans|C++}} |