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++
}
}
}