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>--> |