aboutsummaryrefslogtreecommitdiff
path: root/challenge-158/bruce-gray/go/ch-1.go
blob: 62d3c483a68d5ef39077104d7b9e7d1964b61aef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import "fmt"
import "math/big"

func isPrime(n int) bool {
	return big.NewInt(int64(n)).ProbablyPrime(0)
}
func sumDigits(n int) int {
	sum := 0
	for n > 0 {
		mod := n % 10
		sum += mod
		n -= mod
		n /= 10
	}
	return sum
}
func additivePrimes(maxPrime int) []int {
	var r []int
	for i := 2; i <= maxPrime; i += 1 {
		if isPrime(i) && isPrime(sumDigits(i)) {
			r = append(r, i)
		}
	}
	return r
}
func main() {
	fmt.Println(additivePrimes(100))
}