使用函数找出指定范围内的完数

来源:互联网 发布:epub转pdf mac 编辑:程序博客网 时间:2024/05/16 16:08
程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入两个正整数 m 和 n(1<=m,n<=1000),输出 m 到 n 之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数 factorsum(number),它的功能是返回number的因子和,函数形参number的类型是整型,函数类型是整型。例如,factorsum(12)的返回值是16(1+2+3+4+6)。输出使用语句:printf("%d ", i);输入输出示例:括号内是说明输入:2        (repeat=2)20 500   (m=20 n=500)1 100    (m=1, n=100)输出:28 496   (20到500之间的完数有:28,496)1 6 28   (1到100之间的完数有:1,6,28)

#include "stdio.h"int main(void){    int i, m, n;    int repeat, ri;    int factorsum(int number);       scanf("%d", &repeat);    for(ri = 1; ri <= repeat; ri++){        scanf("%d%d", &m, &n);for(i = m; i <= n; i++){if(i == factorsum(i) )printf("%d ",i);}        printf("\n");    }}int factorsum(int number){int factor;int sum = 1;for(factor = 2; factor <= number/2; factor++){if(number % factor == 0)sum += factor;}     return sum; } 


0 0
原创粉丝点击