30 lines
468 B
Go
30 lines
468 B
Go
package prime
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
const testVersion = 2
|
|
|
|
var sieve []int64
|
|
|
|
func Factors(num int64) []int64 {
|
|
var ret []int64
|
|
for i := range sieve {
|
|
if sieve[i] == num {
|
|
return []int64{num}
|
|
}
|
|
}
|
|
ret = []int64{}
|
|
for i := int64(2); i <= num; i++ {
|
|
fmt.Println("Testing " + strconv.Itoa(int(num)) + "%" + strconv.Itoa(int(i)) + " == " + strconv.Itoa(int(num%i)))
|
|
if num%i == 0 {
|
|
// It's a factor
|
|
|
|
ret = append(ret, i)
|
|
}
|
|
}
|
|
return ret
|
|
}
|