Special divisors: Difference between revisions

Added Go
(Added Swift solution)
(Added Go)
Line 755:
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|Go}}==
{{trans|Wren}}
{{libheader|Go-rcu}}
<lang go>package main
 
import (
"fmt"
"rcu"
)
 
func reversed(n int) int {
rev := 0
for n > 0 {
rev = rev*10 + n%10
n = n / 10
}
return rev
}
 
func main() {
var special []int
for n := 1; n < 200; n++ {
divs := rcu.Divisors(n)
revN := reversed(n)
all := true
for _, d := range divs {
if revN%reversed(d) != 0 {
all = false
break
}
}
if all {
special = append(special, n)
}
}
fmt.Println("Special divisors in the range 0..199:")
for i, n := range special {
fmt.Printf("%3d ", n)
if (i+1)%12 == 0 {
fmt.Println()
}
}
fmt.Printf("\n%d special divisors found.\n", len(special))
}</lang>
 
{{out}}
<pre>
Special divisors in the range 0..199:
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 special divisors found.
</pre>
 
9,485

edits