如果一个数恰好等于它的因子之和,这个数就称为“完数”。如6=1+2+3,则6为完数,java编程找出1000以内的所有完数:
public class PerNumber {
public static void main(String[] args)
{
int s;
for(int i = 6;i<=1000;i++)
{
s = 1;
for(int j = 2;j<=i/2;j++)
if(i%j==0)
s+=j;
if(s==i) System.out.print(i+" ");
}
System.out.println();
}
}
j<i/2时间复杂度较j<i会更小,因为如果i/2<j<i,i%j一定不可能为0.