22 lines
702 B
Julia
22 lines
702 B
Julia
using Formatting, Primes
|
|
|
|
function isblum(n)
|
|
pe = factor(n).pe
|
|
return length(pe) == 2 && all(p -> p[2] == 1 && p[1] % 4 == 3, pe)
|
|
end
|
|
|
|
const blum400k = @view (filter(isblum, 1:9_000_000))[1:400_000]
|
|
|
|
println("First 50 Blum integers:")
|
|
foreach(p -> print(rpad(p[2], 4), p[1] % 10 == 0 ? "\n" : ""), enumerate(blum400k[1:50]))
|
|
|
|
for idx in [26_828, 100_000, 200_000, 300_000, 400_000]
|
|
println("\nThe $(format(idx, commas = true))th Blum number is ",
|
|
format(blum400k[idx], commas = true), ".")
|
|
end
|
|
|
|
println("\n% distribution of the first 400,000 Blum integers is:")
|
|
for d in [1, 3, 7, 9]
|
|
println(lpad(round(count(x -> x % 10 == d, blum400k) / 4000, digits=3), 8), "% end in $d")
|
|
end
|