用java代码求1000之内的所有完全数

Python018

用java代码求1000之内的所有完全数,第1张

import java.util.ArrayList

public class Testa {

public static void main( String[] args ) {

ArrayList<Integer>arrayList = new ArrayList<Integer>()

for ( int i = 1i <= 1000i++ ) {

int k=0

for(int j=1j<ij++){

if(i%j==0){

k+=j

}

}

if(k==i){

arrayList.add( i )

}

}

System.out.println(arrayList)

}

}

n.txt放在src下哈

public

static

void

main(String[]

args)

throws

Exception

{

//

TODO

Auto-generated

method

stub

long

num

=

Long

.parseLong(new

BufferedReader(new

FileReader("n.txt"))

.readLine())

for

(int

i

=

2

i

<=

num

i++)

{

if

(perfectNum(i))

System.out.println(i

+

"是完全数")

}

}

/**

*

判断一个数是否是完全数的方法

*

*

@param

num

*

@return

*/

public

static

boolean

perfectNum(long

num)

{

int

sum

=

0

for

(int

i

=

1

i

<=

num

/

2

i++)

{

if

(num

%

i

==

0)

{

sum

+=

i

//

System.out.println(i)

}

}

return

sum

==

num

}

按照你的要求,求前五个完全数的Java程序如下

public class A {

 public static int factorSum(int x)

 {

  int i,sum=0

  for(i=1i<xi++)

   if(x%i==0){

    sum+=i

   }

  return sum

 }

 public static void main(String[] args) {

  int i=1,count=0

  while(true){

   if(i==factorSum(i))

   {

    System.out.println(i)

    count++

    if(count>=5)break

   }

   i++

  }

 }

}