完数



#include <stdio.h> int main() { int i,j,n,s,k; int a[1000]; while(scanf("%d",&n)&&n!=-1) { s=0; k=0; for(j=1;j<n;j++) if(n%j==0) { s+=j; a[k++]=j ; } if(s==n) { printf("%d=%d",n,1); for(i=1;i<k;i++) printf("+%d",a[i]); printf("\n"); } else printf("No\n"); } }








 
 

  

 

*********************************



#include <stdio.h>
int main()
{
    int n,i,j,s,k,a[10000];
    scanf("%d",&n);
    
    {    s=0; k=0;
        for (j=1;j<n;j++)
            
            if (n%j==0)  {s+=j;a[k++]=j;  }
            if(s==n) 
                  for(i=0;i<k;i++)   printf("%d ",a[i]);
			  else  printf("no\n");
             
            
    }
     return 0;
} 















#include <stdio.h>
int main()
{
    int n,i,j,s;
    scanf("%d",&n);
    
    {    s=0;
        for (j=1;j<i;j++)
            
            if (i%j==0)  s+=j;
            if(s==i) printf("yes\n");
			  else  printf("no\n");
             
            
    }
     return 0;
} 











p89

#include <stdio.h>
int main(  )
{  
int x,i,m ;
for(x=1 ;x<=1000 ;x++)
 {
 	for(m=0 ,i=1 ;i<=x/2 ; i++)
 	if(x%i==0)  m=m+i ;              // if(!(x%i))
	 if(m==x) 
	         printf("%2d\n",x); 
 }
	
	return 0;
}








1303




C语言:循环结构6(完数)
时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:738            测试通过:539

描述


   一个正整数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 

   输入一个正整数n,编程序输出从2到n间的所有完数。


输入

    一个正整数n。

输出

从2到n间的所有完数。

样例输入

50

样例输出

6
28




#include<stdio.h>
int main()
{
    int a,j,m,x,n;
    x>=2;
    x=n;
    n<10000;
    while (scanf("%d",&x)!=EOF)
    {
        for(a=2;a<=x;a++)
        {
            for(m=0,j=1;j<=a/2;j++)
                if(!(a%j)) m=m+j;
                if(m==a) printf("%d\n",a);
                
        }
   
    }
    return 0;
}




**********************************************************





#include <stdio.h>
int main(int argc, char *argv[])
{
    int a,j,m,n;
   
    scanf("%d",&n);
    for (a=2;a<=n;a++)
    {
        for ( m=0,j=1;j<=a/2;j++)
            if (!(a%j))
                m=m+j;
        if (m==a)
            printf("%d\n",a);
    }



*******************************************





#include <stdio.h>
int main()
{
    int n,i,j,s;
    scanf("%d",&n);
    for (i=2;i<=n;i++)
    {    s=0;
        for (j=1;j<i;j++)
            
            if (i%j==0)  s+=j;
            if(s==i) printf("%d\n",i);
            
    }
     return 0;
} 

  

posted @ 2013-11-19 13:58  博园少主  阅读(283)  评论(0编辑  收藏  举报