试题 算法训练 求1000以内的完数
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数。注意1不是完数。
输入格式
无
输出格式
如有多个完数,则分行输出,每行输出一个完数。(注意,不要输出其他任何多余字符)
题解:
1.我都是直接用循环,找出i的所有因子,然后相加,如果等于i那么就是完数
public class 求1000以内的完数 {
public static void main(String[] args) {
for(int i=2;i<=1000;i++)
{
int sum=0;
for(int j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
System.out.println(i);
}
}
}
}