习题 5.9 编程序找出1000之内的所有完数。

来源:互联网 发布:淘宝店招制作教程 编辑:程序博客网 时间:2024/05/01 08:55

C程序设计 (第四版) 谭浩强 习题5.9 个人设计

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:

6 its factors are 1, 2, 3

代码块

#include <stdio.h>int main(){    int n, i, j, k, s;    int v[29];    for (n = 1; n < 1000; n++){        for (s = 0, i = 1, j = 0; i < n; i++){            if (n%i == 0){                v[j++] = i;                s += i;            }        }        if (n == s){            printf("%d its factors are ", n);            for (k = 0; k < j; k++){                printf("%d", v[k]);                if (k != j - 1)                    printf(", ");            }            printf("\n");        }    }    return 0;}

方法2:

#include <stdio.h>int main(){    for (int i=1; i<=1000; i++){        for (int n[100], s=0, k=1, j=0; k<i; !(i%k) ? n[j++]=k, s+=k, k++ : k++);        if(i==s){            printf("%d its factors are ", i);            for (int m=0; m<j; m++){                printf("%d", n[m]);                if (m<j-1) printf(", ");            }            printf("\n");        }    }    return 0;}
阅读全文
0 0