完数
#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; }