求正整数22和nn之间的完全数(一行一个数)。
完全数:因子之和等于它本身的自然数,如6=1+2+36=1+2+3
输入n(n≤5000)n(n≤5000)。
一行一个数,按由小到大的顺序。
7
6
【代码】
#include int isperfect_number(int n) { int i,k,s=1; k=sqrt(n); for(i=2;i<=k;i++) { if(n%i==0) s+=i+n/i; } if(s==n) return 1; else return 0; } int main() { int i,n; scanf("%d",&n); for(i=2;i<=n;i++) { if(isperfect_number(i)) printf("%d\n",i); } return 0; }
京公网安备 11010502049817号