【基础入门题】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)) } }