一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。#include<stdio.h> int Com(int i); int main() { int begin, end, a=0; scanf("%d %d", &begin, &end); for (begin; begin <= end; end--) { if (Com(end)) { a = end; break; } } for (begin; begin <= end; begin++) { if (Com(begin) && begin != a) { printf("%d ", begin); } else if (Com(begin) && begin == a) { printf("%d", a); } } if (a == 0) printf("NIL\n"); system("pause"); return 0; } int Com(int i) { int c=0, d=0; if (i > 1) { for (int b = 1; b < i; b++) { if (i%b == 0) { d += b; } } if (d == i) c = 1; } return c; }
找出一个范围中的所有完数
最新推荐文章于 2024-03-14 23:14:20 发布