前言不想说太多,总之,在华中科技大学计算机系的学习算是开始了吧,现在知道的不多,就当是巩固一下了,一个小练习。
所谓完数,就是其本身为其因数之和的数,例如,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;
}
程序运行如下:
