/*要求:计算1000以内的所有完数
* 完数:一个数恰好等于它的因子之和
* 6 = 1+2+3,就是一个完数*/
public class Test2 {
public static void main(String[] args) {
//从6开始判断是否为完数
for (int i = 6; i <= 1000; i++) {
//调用函数,为TRUE,则是完数,打印输出,否则,进行下一个数
if(Perfectnumber(i)){
System.out.print(i+" ");
}
}
}
private static boolean Perfectnumber(int i) {
//定义一个计算总和的变量
int num = 0;
//通过循环j来取i的因子
for (int j = 1; j <= i/2; j++) {
//如果取余等于零,这相加
if (i % j == 0){
num += j;
}
}
//如果最后相加的数等于i,则是完数,返回TRUE
if (num == i){
return true;
}
return false;
}
}
Java求1000以内的完数
最新推荐文章于 2024-03-26 01:27:02 发布