题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数
思路:
静态方法判断是否是完数,是则返回true,不是则返回false.
能被该数整除即为该数因子,将因子累加后比较。
若直接用两层循环查找需注意累加清零的位置。
实现:
public class PerfectNum {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i =1;i<1000;i++)
{
if(Judge(i))
System.out.println(i+"是完数");
}
}
static boolean Judge(int num)
{
int sum = 0;
//能被整除即为对应因子
for(int i =1;i<num;i++)
{
if(num%i==0)
sum+=i;
}
if(sum==num)
return true;
else
return false;
}
}