标题:大家来看下,本人菜鸟
只看楼主
shiqizhoufan
该用户已被删除
已结贴  问题点数:15 回复次数:12 
大家来看下,本人菜鸟
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: void include 
2010-05-21 20:54
shiqizhoufan
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-21 22:01
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
得分:0 
#include <stdio.h>
void main()
{
 int n,m,sum;
 for(n=1;n<=1000;n++)
  {
   sum=0;
   for(m=1;m<=n/2;m++)
     if(n%m==0) sum+=m;
   if(n==sum) printf("%d\n",n);
  }
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-21 22:18
冥卫
Rank: 8Rank: 8
来 自:深山老林
等 级:蝙蝠侠
帖 子:280
专家分:772
注 册:2010-4-20
得分:1 
顶下
2010-05-21 22:31
qwerwqily
该用户已被删除
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-21 22:38
shiqizhoufan
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-21 22:41
whiter
Rank: 1
来 自:彭城
等 级:新手上路
帖 子:6
专家分:6
注 册:2010-5-21
得分:2 
程序代码:
#include <stdio.h>
void main()
{
    int i,j,sum;
    
    for(i=2;i<=100;i++)
    {
        sum=0;
       for(j=1;j<=i-1;j++)
       {
           if(i%j==0)
           {
               sum+=j;
           }
           
       }
       if(i==sum) 
        {
            printf("%d是完数\n",i);
         }
    }
}



6 28 是完全数
代码能运行

自己的路,只能自己走出来!
2010-05-21 22:54
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
得分:10 
#include <stdio.h>
#include <math.h>//这个不用写  用不到!
void main()
{
    int x,y,n,m=0;//m要在第一个for循环里面重新赋值为0;因为第二个for循环进行完后m得知发生了变化;要重新赋值为0后在进行下一个数值的判断!不然的话m相当于是2到100的和!不知表达是否清楚!
    y=x/2;在第一个for循环里面写上,因为的哥for循环开始后x才有了赋值!
    for(x=2;x<=100;x++)
    {
    for(n=1;n<=y;n++)
       {
           if(x%n==0)
               m+=n;
       }
       if(x==m)
       printf("%d是完数",x);
    }
}
看看改进的:
#include <stdio.h>
void main()
{
    int x,y,n,m;
    for(x=2;x<=1000;x++)
    {
        m=0;
    for(n=1;n<=x/2;n++)
       if(x%n==0)
        
         m+=n;
         
       if(x==m)
           printf("%3d是完数\n",x);
    }
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-21 23:02
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
得分:0 
#include <stdio.h>
#include <math.h>//这个不用写  用不到!
void main()
{
    int x,y,n,m=0;//m要在第一个for循环里面重新赋值为0;因为第二个for循环进行完后m的值发生了变化;要重新赋值为0后在进行下一个数值的判断!不然的话m相当于是2到100的和!不知表达是否清楚!
    y=x/2;在第一个for循环里面写上,因为第一个for循环开始后x才有了赋值!
    for(x=2;x<=100;x++)
    {
    for(n=1;n<=y;n++)
       {
           if(x%n==0)
               m+=n;
       }
       if(x==m)
       printf("%d是完数",x);
    }
}
看看改进的:
#include <stdio.h>
void main()
{
    int x,y,n,m;
    for(x=2;x<=1000;x++)
    {
        m=0;
    for(n=1;n<=x/2;n++)
       if(x%n==0)
        
         m+=n;
         
       if(x==m)
           printf("%3d是完数\n",x);
    }
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-21 23:06
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
得分:1 
#include <stdio.h>
#include <math.h>
main()
{
    int n=1000,i,j,a;
    for(i=1;i<n;i++)
    {   a=0;
        for(j=1;j<i;j++)
        {
            if(i%j==0)
            {
                a=a+j;
            }
        }
    if(a==i)
    printf("完全数:%d",a);
        }
}
2010-05-22 09:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-307641-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.132385 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved