找完全数 暂无分
小明刚刚学习了关于完全数的概念: 因子之和等于它本省的自然数,如6=1+2+3
求A和B之间所有的完全数,并且输出个数。
输入描述:
输入一行,包含两个正整数A和B, 约定2<=A<=B<=1000。
输出描述:
输出两行,第一行表示完全数的个数
第二行表示A和B之间所有的完全数
输入示例:
2100
输出示例:
2
6 28
找完全数 暂无分
小明刚刚学习了关于完全数的概念: 因子之和等于它本省的自然数,如6=1+2+3
求A和B之间所有的完全数,并且输出个数。
输入描述:
输入一行,包含两个正整数A和B, 约定2<=A<=B<=1000。
输出描述:
输出两行,第一行表示完全数的个数
第二行表示A和B之间所有的完全数
输入示例:
2100
输出示例:
2
6 28
#include <stdio.h>
int judge(int n)
{
int s = 0;
for (int i = 1; i < n; i++) if (n % i == 0) s += i;
return s == n;
}
int main()
{
int a, b, cnt = 0, arr[1001];
scanf("%d%d", &a, &b);
for (int i = a; i <= b; i++) { if (judge(i)) arr[cnt++] = i; }
printf("%d\n", cnt);
for (int i = 0; i < cnt; i++) printf("%d ", arr[i]);
return 0;
}