Golang 002. 求质因数的个数

x33g5p2x  于2021-11-30 转载在 Go  
字(0.9k)|赞(0)|评价(0)|浏览(276)

【基础入门题】Golang 002. 求质因数的个数

求一个正整数 n 的所有质因数中不相同的个数。
Factor(6) = 2; Factor(7) = 1; Factor(1260) = 4

方法一:

package main

import "fmt"

func Factor(number int) int {
	result := 0
	for i, j := 2, number; i <= number; i++ {
		if j%i == 0 {
			result++
			for j%i == 0 {
				j /= i
			}
		}
	}
	return result
}

func main() {
	var nums = []int{6, 7, 1260}

	fmt.Println("循环方式一:")
	for i := 0; i < len(nums); i++ {
		fmt.Printf("%d的质因数有:%d个。\n", nums[i], Factor(nums[i]))
	}

	fmt.Println("\n循环方式二:")
	for _, val := range nums {
		fmt.Printf("%d的质因数有:%d个。\n", val, Factor(val))
	}
}

方法二:

package main

import "fmt"

func isPrime(i int) bool {
	result := true
	for j := 2; j < i; j++ {
		if i%j == 0 {
			result = false
			break
		}
	}
	return result
}

func Factor(number int) int {
	result := 0
	for i := 2; i <= number; i++ {
		if number%i == 0 && isPrime(i) {
			result++
		}
	}
	return result
}

func main() {
	var nums = [3]int{6, 7, 1260}

	for _, val := range nums {
		fmt.Printf("%d的质因数有:%d个。\n", val, Factor(val))
	}
}

欢迎加入CSDN社区! ​

https://bbs.csdn.net/forums/PythonTogether

相关文章

微信公众号

最新文章

更多