原题链接:[编程入门]完数的判断
0.0分
311 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> int main() { int N, i, j; scanf("%d", &N); for (i = 2; i <= 1000; i++) { int sum = 0; for (j = 1; j <= i - 1; j++) { if (i % j == 0) { sum += j; } } if (sum == i) { printf("%d its factors are ", i); for (j = 1; j <= i - 1; j++) { if (i % j == 0) { printf("%d ", j); } } printf("\n"); } } } 求个大佬! 这个运行结果和题目的样例一样,为什么错误啊#include<stdio.h> int main() { int a; scanf("%d", &a); for (int i = 1; i <= a; i++) { int b = 0; for (int j = 1; j < i; j++) { if (i % j == 0) { b += j; } } if (b == i) { printf("%d its factors are ", i); for (int k = 1; k < i; k++) { if (i % k == 0) { printf("%d ",k); } } printf("\n"); } } return 0; }#include<stdio.h> int main() { int n,i,s,a[100],m; scanf("%d",&n); for(i=1;i<=n;i++) { s=m=0; for(int k=1;k<i;k++) { if(i%k==0) { a[m]=k; s+=a[m]; m++; } } if(s==i) { printf("%d its factors are ",i); for(int z=0;z<m;z++) { printf("%d ",a[z]); } printf("\n"); } } getchar(); getchar(); return 0; }//不知道为什么我的时间超限了有大佬指点为什么错了么,运行测试都没问题,没明白 #include<stdio.h> int test(int x,int y) { if(y%x==0) return 0; else return 1; } int main() { int a,sum=0,b[100]={0},c=0; scanf("%d",&a); for(int i=1;i<a;i++) { if(test(i,a) == 0) { b[c]=i; sum += i; c++; } } if(sum == a) { printf("%d its factors are ",a); for(int i=0;i<c;i++) printf("%d ",b[i]); } return 0; }#include<stdio.h> int main() { int N,i,j,sn,s[1000],k,l; scanf("%d", &N); for(i=2;i<=N;i++) { for(sn=0,j=1,k=0;j<=i/2;j++)//变成到i/2可以不超时 { if((i%j)==0) { sn=sn+j; s[k++]=j; } } if(sn==i) { printf("%d its factors are ",i); for(l=0;l<k;l++) {printf("%d ",s[l]);} printf("\n"); } } return 0; }