请教各位大侠一下哦,一个C的程序问题哟

来源:百度知道 编辑:UC知道 时间:2024/09/23 12:31:40
有个题是这样的:
设计程序,判断某数是否是完数。所谓完数,就是一个数等于其各因子之和(因子就是所有可以整除这个数的数,但是不包括这个数自身),如:6=1+2+3
希望能详细点好吗?谢谢。。。
你可以具体的写下代码吗?

谭浩强书上的练习吧 一般都用穷举法一个一个筛选,因为范围比较小

求1000以内完数,其他类似
main()
{
int n,i,j;
for(i=1;i<=1000;i++)
{
n=0;/*每次循环后要把n置为0,为了判断下一个 */
for(j=1;j<i;j++)
{if(i%j==0)/*检查j是否可被i整除, */
n+=j;
}
if(n==i)/*判断j累加后即为n是否等于i */
{
/*printf("%d its factors are:",n);*//*测试用*/
for(int k=1;k<n;k++)/*利用循环输出他的因子 */
if(n%k==0){printf("%d\n",k);
}
}printf("\n");
}