学习任何一项技能最怕没有反馈,尤其是学英语、学编程的时候,一定要“用”,学习编程时有一个非常有用的网站,它就是“欧拉计划”,网址:https:projecteuler.net这个网站提供了几百道由易到难的数学问题
,例如12的所有因子和,1 + 2 + 3 + 4 + 6 16, 因为16 > 12,所以12是富裕数。
数学上已经证明,超过28123的数都可以分解为2个富裕数之和。求所有不能分解为两个富裕数之和的正整数的总和。
求解过程:1)求所有因子(不包含自身)2)判断是否为富裕数3)判断是否可以分解为2个富裕数之和4)求解最后的问题第一步求因子,在第21题中已经求过,但这里发现它的一个BUG,对于4, 9, 16, 25
1,2,3,另外一半因子:4,6,分别对应于123,122 for i in (1..v.len()).rev() {不要num自身,所以从1开始 v.push(num v); } } v}第二步判断是否为富裕数