您的位置:首页 > 编程语言

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

2017-08-09 19:59 381 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐