Special divisors: Difference between revisions
Content added Content deleted
(Added solution for Action!) |
(Added Forth solution) |
||
Line 814: | Line 814: | ||
73 77 79 82 83 86 88 89 93 97 99 101 103 107 109 113 121 127 |
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 |
131 137 139 143 149 151 157 163 167 169 173 179 181 187 191 193 197 199 |
||
</pre> |
|||
=={{header|Forth}}== |
|||
{{works with|Gforth}} |
|||
<lang forth>: reverse ( n -- n ) |
|||
0 >r |
|||
begin |
|||
dup 0 > |
|||
while |
|||
10 /mod swap |
|||
r> 10 * + >r |
|||
repeat |
|||
drop r> ; |
|||
: special? ( n -- ? ) |
|||
dup reverse >r |
|||
2 |
|||
begin |
|||
2dup dup * >= |
|||
while |
|||
2dup mod 0= if |
|||
dup reverse r@ swap mod 0 <> if |
|||
rdrop 2drop false exit |
|||
then |
|||
2dup / dup 2 pick <> if |
|||
reverse r@ swap mod 0 <> if |
|||
rdrop 2drop false exit |
|||
then |
|||
else |
|||
drop |
|||
then |
|||
then |
|||
1+ |
|||
repeat |
|||
rdrop 2drop true ; |
|||
: main |
|||
0 |
|||
200 1 do |
|||
i special? if |
|||
i 3 .r |
|||
1+ |
|||
dup 10 mod 0= if cr else space then |
|||
then |
|||
loop cr |
|||
. ." numbers found." cr ; |
|||
main |
|||
bye</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 |
|||
72 numbers found. |
|||
</pre> |
</pre> |
||