Special divisors: Difference between revisions

Content added Content deleted
Line 4: Line 4:
Numbers n such that reverse(d) divides reverse(n) for all divisors d of n, where '''n < 200'''
Numbers n such that reverse(d) divides reverse(n) for all divisors d of n, where '''n < 200'''
<br><br>
<br><br>

=={{header|Julia}}==
<lang julia>using Primes

function divisors(n)
f = [one(n)]
for (p,e) in factor(n)
f = reduce(vcat, [f*p^j for j in 1:e], init=f)
end
return f[1:end-1]
end

function isspecialdivisor(n)::Bool
isprime(n) && return true
nreverse = evalpoly(10, reverse(digits(n)))
for d in divisors(n)
dreverse = evalpoly(10, reverse(digits(d)))
!(nreverse ÷ dreverse ≈ nreverse / dreverse) && return false
end
return true
end

const specials = filter(isspecialdivisor, 1:200)
foreach(p -> print(rpad(p[2], 4), p[1] % 18 == 0 ? "\n" : ""), enumerate(specials))
</lang>{{out}}
<pre>
1 2 3 4 5 6 7 8 9 11 13 17 19 22 23 26 27 29
31 33 37 39 41 43 44 46 47 53 55 59 61 62 66 67 69 71
73 77 79 82 83 86 88 89 93 97 99 101 103 107 109 113 121 127
131 137 139 143 149 151 157 163 167 169 173 179 181 187 191 193 197 199
</pre>

=={{header|Phix}}==
=={{header|Phix}}==
<!--<lang Phix>-->
<!--<lang Phix>-->