一个数如果恰好等于它的因子之和,这个数就称为”完数”. 分别编写一个应用程序和小应用程序求1000之内的所有完数.
class wan{
public static void main(String args[]){
int n,i,j=0;
for(n=2;n<1001;n++){ //就这地方出错了
for(i=1;i<n;i++)
if(n%i==0)
j=j+i;
if(j==n)
System.out.println(n+"是完数");}
}
}
结果没输出
class wan{
public static void main(String args[]){
int n=6,i,j=0;
for(i=1;i<n;i++)
if(n%i==0)
j=j+i;
if(j==n)
System.out.println(n+"是完数");
}
}
有结果希望大哥大姐告诉我为什么,谢谢了
class wan{
public static void main(String args[]){
int n,i,j=0;
for(n=2;n<1001;n++){ //就这地方出错了
for(i=1;i<n;i++)
if(n%i==0)
j=j+i;
if(j==n)
System.out.println(n+"是完数");}
}
}
结果没输出
class wan{
public static void main(String args[]){
int n=6,i,j=0;
for(i=1;i<n;i++)
if(n%i==0)
j=j+i;
if(j==n)
System.out.println(n+"是完数");
}
}
有结果希望大哥大姐告诉我为什么,谢谢了
j = 0;
因为对每一个应该把j复位一下,呵呵。
int sum=0;
String str="";
for(int j=1;j<=i/2;j++){
if(i%j==0){
sum=sum+j;
str=str+j+"+";
}
}
if(i==sum){
str=str.substring(0,str.length()-1);
System.out.println(str+"="+i+"是完数");
}
}