回 帖 发 新 帖 刷新版面

主题:关于完数的一个程序,可是我觉得这个结果很奇怪!

关于完数的一个程序,可是我觉得这个结果很奇怪
#include <stdio.h>
void main()
{int s,i,x;
for(x=2;x<1000;x++)    //for(m=2;m<1000;m++)
 {    s=0;              // { s=0; 
     for(i=1;i<x;i++)   // for(i=1;i<m;i++) 
  if((x%i)==0)s=s+i;   //if((m%i)==0)s=s+i;
 if(s==x)          // if(s==m)   
   {printf("%d,its factors are ",x); //{ printf("%dits factors are",m);
     for(i=1;i<x;i++)          //for (i=1;i<m;i++)
       if(x%i==0) printf("%d",i);//if(m%i==0)printf("%d",i);
       printf("\n");//printf("\n");
   }
  }
}

回复列表 (共6个回复)

沙发

哪里奇怪??顺便提一句:算法不是最优的

板凳


运行结果很怪啊~一大串数字~请教这位高手最优算法~谢谢!

3 楼

if(x%i==0) printf("%d",i);
这句输出有点问题,%d后加一个空格就清晰了

4 楼

对啦对啦!谢谢!请问好算法是什么样的?

5 楼

好算法是个很抽象的概念,一般来说,好算法符合以下特征的尽可能多个:高效率(较低时间占用),低开销(较少的内存占用,包括少开变量,少开长时间不用的数组),表述简洁(必要的范围内尽可能减少需要的步骤),以及通用性等等
有兴趣的话可以加Q探讨,我资料里有我Q号

6 楼

[quote]对啦对啦!谢谢!请问好算法是什么样的?[/quote]

这个问题太宽泛了,可以找一本算法分析的书来阅读下,好算法也不是一天两天可以写出来的,对同一个算法应用在不同的问题上产生的效率和效果就可能是不一样的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册