Java怎么判断是否是完数

Python015

Java怎么判断是否是完数,第1张

完数就是它的所有(余数为0的)被除数相加的和等于它本身(其中的被除数要除去它本身)

判断10000以内的完数

for(long i =1i<10000i++){

long sum=0

for (long j=1j<i+1 j++ )

{

if(i%j==0){

sum+=j

}

}

if(sum/2==i){

System.out.println(i)

}

}

不知道我的理解对不对。。。。。

public class PerfectNum

{

public static void main ( String[] args )

{

for ( int i = 2 i < 1000 i++ )

{

if (perfectNum (1, i) == i)

{

System.out.print (i + " ")

}

}

}

private static long perfectNum ( long start, long num )

{

if (start > num / 2)

{

return 1

}

start++

if (num % start == 0)

{

return start + perfectNum (start, num)

}

else

{

return perfectNum (start, num)

}

}

}