【牛客刷题】HJ6 质数因子
这道题本身更多的是考察如何计算一个数的质数因子,更像是一道数学题,用到了循环的方法:
package main
import (
"fmt"
"math"
)
func main() {
a := 0
fmt.Scan(&a)
end := math.Sqrt(float64(a))
for i := 2; i <= int(end); i++ {
for a%i == 0 {
fmt.Printf("%d ", i)
a /= i
}
if a == 1 {
break
}
}
if a != 1 {
fmt.Printf("%d", a)
}
}
任何一个数,其质数因子都不会大于其平方根,因此可以利用平方根来作为循环的结束条件,减少运算量。