题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
package main
import (
"fmt"
"math"
"strings"
"bufio"
"strconv"
"os"
)
func main() {
r := bufio.NewReader(os.Stdin)
b, _, err := r.ReadLine()
if err != nil {
return
}
d, err := strconv.Atoi(string(b))
if err != nil {
return
}
ls := []int{}
LookUpPrime(d, &ls)
lt := []string{}
for _, v := range ls {
lt = append(lt, fmt.Sprintf("%d", v))
}
fmt.Println(strings.Join(lt, " "))
}
func LookUpPrime(n int, ls *[]int) {
if n <= 1 {
return
}
if IsPrime(n) {
*ls = append(*ls, n)
return
}
for i := 2; i <= int(math.Sqrt(float64(n))); i++ {
if n%i == 0 {
*ls = append(*ls, i)
LookUpPrime(n/i, ls)
break
}
}
}
func IsPrime(n int) bool {
if n <= 1 {
return false
}
for i := 2; i <= int(math.Sqrt(float64(n))); i++ {
if n%i == 0 {
return false
}
}
return true
}


查看3道真题和解析