输出1000以内完数 - 大学的新篇章

本文介绍了一个简单的C语言程序,用于找出1000以内的所有完数,并详细解释了程序的工作原理和调试过程中遇到的问题。

  前言不想说太多,总之,在华中科技大学计算机系的学习算是开始了吧,现在知道的不多,就当是巩固一下了,一个小练习。

  所谓完数,就是其本身为其因数之和的数,例如,6的因数有1、2、3,同时,6=1+2+3,所以6就是一个完数。

  一开始写的时候,忘记了让s归零即s=0这个过程,所以始终没有输出任何数字,在纸上琢磨很久,始终无解,一上机,立马就感觉到问题了,果然计算机是一门实践性的课程。

  程序如下:

#include <stdio.h>
#include <conio.h>

int main()
{

      int n,i,s=0; //n为完数,i为因数,s为因数之和
      for(n=2;n<=1000;n++)
      {
            for(i=1;i
            {
                  if(n%i==0) s=s+i;
            }
            if(s==n)
            {
                  printf("%d its factors are ",n);
                  for(i=1;i
                  {
                        if(n%i==0) printf("%d,",i);
                  }
                  printf("\b "); //输入退格键,删掉最后一个多输出的逗号
                  printf("\n"); //每行完数输出完后换行
            }
            s=0;
      }
      getch();
      return 0;
}

 

程序运行如下:

输出1000以内完数 <wbr>- <wbr>大学的新篇章

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值