题目内容:
一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。
现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。
代码:
public class Main {
public static boolean isIntegr(int j)//判断是否是完数的函数
{
boolean isIntegr=false;
int s=0;
for(int i=1;i<j;i++)
{
if(j%i==0)
{
s=s+i;
}
if(s==j)
{
isIntegr=true;
}
}
return isIntegr;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
boolean isExist=false;//定义一个值表明是否存在完数
if(n>=1&&m<1000&&n<m)
{
for(int i=n;i<m;i++)
{
if(isIntegr(i))
{
System.out.print(" "+i);
isExist=true;
}
}
if(!isExist)//若不存在,输出空行
{
System.out.println(" ");
}
}
}
}