This commit is contained in:
VicRen
2021-01-07 09:05:03 +08:00
parent 9383aba292
commit 89a6a7f664
2 changed files with 74 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
package main
import "fmt"
func main() {
sum := 0
for i := 1; i < 100000000; i++ {
if isCompatible(i) {
sum += i
}
}
fmt.Println("sum=", sum)
}
func isCompatible(n int) bool {
ds := listDivisors(n)
for _, i := range ds {
if !isPrime(i + n/i) {
return false
}
}
return true
}
func listDivisors(input int) []int {
var ret []int
for i := 1; i <= input; i++ {
if input%i == 0 {
ret = append(ret, i)
}
}
return ret
}
func isPrime(n int) bool {
if n <= 1 {
return false
}
divider := 2
for divider < n {
if n%divider == 0 {
return false
}
divider++
}
return true
}

View File

@@ -0,0 +1,27 @@
package main
import "testing"
func Test_isCompatible(t *testing.T) {
type args struct {
n int
}
tests := []struct {
name string
args args
want bool
}{
{
"test1",
args{30},
true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := isCompatible(tt.args.n); got != tt.want {
t.Errorf("isCompatible() = %v, want %v", got, tt.want)
}
})
}
}