Deceptive numbers: Difference between revisions

Content deleted Content added
Chunes (talk | contribs)
Add Factor
Wherrera (talk | contribs)
faster version
Line 61: Line 61:


function deceptives(numwanted)
function deceptives(numwanted)
n, ret = 2, Int[]
n, r, ret = 2, big"1", Int[]
while length(ret) < numwanted
while length(ret) < numwanted
if !isprime(n)
!isprime(n) && r % n == 0 && push!(ret, n)
r = evalpoly(big"10", [1 for _ in 1:n-1])
r % n == 0 && push!(ret, n)
end
n += 1
n += 1
r = 10r + 1
end
end
return ret
return ret
end
end


println(deceptives(10)) # [91, 259, 451, 481, 703, 1729, 2821, 2981, 3367, 4141]
@time println(deceptives(30))
</lang>
</lang>{{out}}
<pre>

[91, 259, 451, 481, 703, 1729, 2821, 2981, 3367, 4141, 4187, 5461, 6533, 6541, 6601, 7471, 7777, 8149, 8401, 8911, 10001, 11111, 12403, 13981, 14701, 14911, 15211, 15841, 19201, 21931]
0.296141 seconds (317.94 k allocations: 196.253 MiB, 39.26% gc time)
</pre>


=={{header|Raku}}==
=={{header|Raku}}==