我的问题出现在哪?
/*题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
*/
public class Test10 {
public static void main(String[] args) {
int z = 0;
int n = 0;
int i = 2;
int sum = 1;
int m=2;
while(m<=1000){
z = m;
while(i<=m) {
if(m%i == 0) {
sum+=i;
m/=i;
}
else{
i++;
}
}
if(z == sum) {
System.out.print(z+" ");
n++;
if(n%5 == 0) {
System.out.println();
}
}
m++;
i=2;
sum=1;
}
}
}
------解决方案--------------------LZ的问题在于m的值一直是2
------解决方案--------------------Java code
package com.sean.csdn;
public class CsdnDemo01 {
public static void main(String args[]){
int sum = 0;
int i = 0;
int j = 0;
for(i=1;i<=1000;i++) {
for(j=1,sum=0;j<=i/2;j++){
if(i%j==0){
sum+=j;
}
}
if(sum==i){
System.out.println("完数:"+i);
}
}
}
}
------解决方案--------------------
我想你没搞清楚一个问题,一个数的因子是可以完全整除它的数,然后再理顺下思路去写代码