一个数如果恰好等于它的因子之和,这个数称为“完数”,如6的因子为 1,2,3,而1+2+3=6,因此6就是完数 提示: 判断一个数是否是完数,用穷举法:从1~n/2+1 逐个判断是否整除,如果整除则累加 如果累加结果与n 相等,则输出完数n; 如果完数个数为0,则输出NO 类似问题可以做1111号题目
Posted on 2022-11-08 23:19 lachesism 阅读(405) 评论(0) 收藏 举报输入:
输入一个整数n(0 < n <=1000)
输出:
输出2到n间的所有完数。注:如果有多个,输出在同一行,用空格隔开,如果没有,输出“NO” 。如:输入3 ,输出:NO ;输入8 ,输出:6;输入30,输出:6 28。
#include<stdio.h> main() { int n,i,j,sum=0,s=0; scanf("%d",&n); for(i=2;i<=n;i++) { for(j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(i==sum) { printf("%d ",i); s++; } sum=0; } if(s==0) { printf("NO"); } }
浙公网安备 33010602011771号