Blum integer: Difference between revisions
Content added Content deleted
(Added FreeBasic) |
(→{{header|Ruby}}: Add Ruby) |
||
Line 1,079: | Line 1,079: | ||
7 => %24.9973: |
7 => %24.9973: |
||
9 => %24.9848:</pre> |
9 => %24.9848:</pre> |
||
=={{header|Ruby}}== |
|||
<syntaxhighlight lang="ruby" line>require 'prime' |
|||
BLUM_EXP = [1, 1] |
|||
blums = (1..).step(2).lazy.select do |c| |
|||
next if c % 5 == 0 |
|||
primes, exps = c.prime_division.transpose |
|||
exps == BLUM_EXP && primes.all?{|pr| (pr-3) % 4 == 0} |
|||
end |
|||
n, m = 50, 26828 |
|||
res = blums.first(m) |
|||
puts "First #{n} Blum numbers:" |
|||
res.first(n).each_slice(10){|s| puts "%4d"*s.size % s} |
|||
puts "\n#{m}th Blum number: #{res.last}"</syntaxhighlight> |
|||
{{out}} |
|||
<pre>First 50 Blum numbers: |
|||
21 33 57 69 77 93 129 133 141 161 |
|||
177 201 209 213 217 237 249 253 301 309 |
|||
321 329 341 381 393 413 417 437 453 469 |
|||
473 489 497 501 517 537 553 573 581 589 |
|||
597 633 649 669 681 713 717 721 737 749 |
|||
26828th Blum number: 524273 |
|||
</pre> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |