题目链接: 习题6-3 使用函数输出指定范围内的完数 (20分)
#include <stdio.h> int factorsum( int number ); void PrintPN( int m, int n ); int main() { int i, m, n; scanf("%d %d", &m, &n); if ( factorsum(m) == m ) printf("%d is a perfect number\n", m); if ( factorsum(n) == n ) printf("%d is a perfect number\n", n); PrintPN(m, n); return 0; } /* 你的代码将被嵌在这里 */ int factorsum( int number ){ int s=0,i; if(number==1){ return 1; }else{ for(i=1;i<number;i++){ if(number%i==0){ s=s+i; } } return s; } } void PrintPN( int m, int n ){ int c=0,i,j; for(i=m;i<=n;i++){ if(factorsum(i) == i){ c++; printf("%d = 1",i); for(j=2;j<i;j++){ if(i%j==0){ printf(" + %d",j); } } printf("\n"); } } if(c==0){ printf("No perfect number"); } }