解题思路
- 暴力搜索每个数的约数然后求和最后看是否满足条件,满足条件就添加到数组中,然后统计数组的长度
- 优化方法就是添加一些条件让循环次数减少
package main
import(
"fmt"
)
func main(){
var num int
for{
if n,_ := fmt.Scan(&num); n == 0{
return
}
nums :=make([]int,0)
// 数值递增 1,2,3,4....n
for i := 1;i<num;i++{
s := 0
// 对数求真因子
for j := 1;j<i;j++{
if i%j == 0{
s += j
}
}
//是否满足真因子的和等于它本身
if s == i{
nums = append(nums,s)
}
}
fmt.Println(len(nums))
}
}


京公网安备 11010502036488号