求助 帮忙看一下代码嘛
功能是输出1到1000内能被它整除的数加起来的和为它本身的,如6=1+2+3,而且1,2,3也能被6整除public class Perfect{
public static void main(String []perfect)
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=1;j<=Math.sqrt(1000);j++)
{
if(i%j==0&&i!=j)
{
num+=j;
}
}
if(num==i)
{
System.out.println(" "+i);
}
}
}
}
----------------解决方案--------------------------------------------------------
程序代码:
public class DivAdd {
private static long getSum(long num) {
long result = 0;
for (int i = 1; i < num; ++i){
if (num % i == 0){
result += i;
}
}
return result;
}
public static void main(String[] args) {
for(int i = 2; i < 1000; ++i){
if(getSum(i) == i){
System.out.print(" " + i);
}
}
}
}
这样可否?
----------------解决方案--------------------------------------------------------
二楼高手哇!!顶二楼!!!
----------------解决方案--------------------------------------------------------
class zheng
{
public static void main(String[] args)
{
for(int i=1;i<=1000;i++)
{ long num=0;//每次都要去判断num是否和i值相等,所以每次num都要重置为0;
for(int j=1;j<i;j++)
{
if(i%j==0)
{num+=j;}
}
if(num==i)
{System.out.println(" "+i);}
}
}
}
----------------解决方案--------------------------------------------------------