(C语言)一个数如果恰好等于它的因子之和,这个数就称为”完数。找出1000之内的所有完数。

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:24:27
#include "stdio.h"
main(){
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++){
n=-1;
s=j;
for(i=1;i<j;i++){
if(j%i==0){
n++;
s=s-i;
k[n]=i;
}
}
if(s==0){
printf("%d=1",j);
for(i=0;i<n;i++)
printf("+%d",k[i+1]);
printf("\n");
}
}
}
为什么n要设为-1,设为-1是什么意思?
n++;
s=s-i;
k[n]=i;
这几行在这个程序中分别代表什么意思?

楼主,你好!
n++,代表n自己增加1。
s=s-i,代表s减去i之后,把算得的结果再赋给s存放起来
k[n]=i,表示定义了一个数组k,n是它的下标,把i的值赋给k[n]

n设为-1是因为执行n++之后,n变成了0,数组k[n]是k[0]开始的。所以要n=-1;
其实这个程序个人认为写得并不很好。绕了一大圈。。应该从n=0开始。在k[n]=i之后n才执行n++;

感觉你好像是初学C,加油吧,多看书!

当找到j的一个因子时,将它减去,同时把因子保存在数组k中,n=-1是保证当找到第一个因子时,把它保存在k[0]里~

一个数如果恰好等于它的因子之和,此数则为完数,如6=1+2+3.用C语言找出1000以内的所有完数。 一个数如果恰好等于它的因子之和,这个数就叫做完数.用java语言编程找出1000之内的所有完数 用C程序编写一个数如果恰好等于他的因子之和,这个数就称为完数,找出1000之内所有的完数, 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 有一个自然数它与168的和恰好等于某个数的平方,它与100的和恰好等于另一个数的平方。这个数是多少?( 有一个自然数它与168的和恰好等于某个数的平方,它与100的和恰好等于另一个数的平方。这个数是多少? 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数 一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6=1+2+3。编程找出1000之内的所有完数 c++,求出1~1000之间的完全数。所谓完全数是指该数恰好等于它的因子(本身除外)之和的数 一个数恰好等于它的平方数的右端,这个数称为同构数,如,5的平方等于25,求1到1000之间的所有同构数,