首页 新闻 搜索 专区 学院

求10000以内的完美数,遇到段错误。

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-03 20:49

int main(int argc, char ** argv)

                 int i;
   int a;
   int total;
   total = 0;
 
   int tep[100] ={};
   int * ptr = tep;
   for(i = 1; i <= 10000; i ++ )
   {
        for(a = 1; a < i; a++)
    {
     if(i % a == 0)
     {
         *ptr++ = a;
         total = total + a;
       }
          
    }
    if(total == i)
         printf("%d 是一个完数\n 它的因子是:",i);
   
   * ptr = tep;
   while(*ptr++)
         printf("%d",*ptr);

  }

             

}

withcoco的主页 withcoco | 初学一级 | 园豆:182
提问于:2012-03-02 19:08
< >
分享
最佳答案
0

int i,j,sum; 

  for(i=2;i<1000;i++){ 

   sum=0; 

  for(j=1;j<=i/2;j++){ 

  if(i%j==0) 

  sum=sum+j; 

  } 

  if(sum==i) 

  System.out.println(i); 

  }

收获园豆:10
KivenRo | 小虾三级 |园豆:1722 | 2012-03-02 22:23
其他回答(1)
0

public class lianxi09 {
public static void main(String[] args) {
     System.out.println("1到1000的完数有: ");
     for(int i=1; i<10000; i++) {
      int t = 0;
      for(int j=1; j<= i/2; j++) {
       if(i % j == 0) {
        t = t + j;
       }
      }
      if(t == i) {
       System.out.print(i + "     ");
      }
     }
}

收获园豆:10
忍性而为 | 园豆:215 (菜鸟二级) | 2012-03-03 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册