完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。截至2018年,相关研究者已经找到51个完全数。
还是老样子 ,依然是用for循环写出(个人习惯,方法不唯一)。
首先创建变量
int number,s,output;
number为取值区间内的数,s为被某个数除的和,outup为结果(求法与素数如出一辙,部分功能代码不同。学会素数求法=学会完数求法)。这里就不详细讲解,直接放代码,如有疑惑请阅上期文章。
public class PerfectNumber {
public static void main(String[]args){
int number,s,output;
for (number=2;number<=1000;number++){
output=1;
for (s=2;s<number;s++){
if (number%s==0){
output+=s;
}
}
if (output==number){
System.out.println("完数:"+output);
}
}
}
}
这里讲解一下,可能有些小伙伴不太懂output+=s是什么意思
拓展运算符 | 表达式 | 等价表达式 | 结果 |
+= | a+=b | a=a+b | 15 |
- = | a-=b | a=a-b | 5 |
*= | a*=b | a=a*b | 50 |
/= | a/=b | a=a/b | 2 |
如果还有不懂的小伙伴可以随时问我,这里放上运行图片