题解 | #质数因子#

质数因子

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
}

全部评论

相关推荐

03-31 18:02
门头沟学院 Java
白日梦想家_等打包版:不要的哦佛给我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务