#include
#include
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
先看运行截图:
#include
int isws(int a);
main(){
int i=2,count,s=0;
for(;i<1000;i++){
count = isws(i);
if(count){
int a = 1;
s = 0;
printf("%d its factors are ",i);
for(a;a<=i/2;a++){
if(i%a==0){
printf("%d",a);
s++;
if(s < count) printf(","); //用来判断后面是否还有因子,没有因子就换行
else printf("\n");
}
}
}
}
return 0;
}
int isws(int a){ //判断是否是完数,如果是返回因子的个数
int i=2,sum=1,count=1;
for(i;i<=a/2;i++){
if(a%i==0) {
sum+=i;
count++;
}
}
if(sum == a) return count;
else return 0;
}
#include
#include
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
171
#include
#include
void
main()
{
int
m,i,s;
for(m=1;m<=1000;m++)
//从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i
if(m%i==0)
//如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m)
//如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6
28
496
一个数如果恰好等于它的因子之和,这个数就称为完全数,
如 6,28,496 等。无穷多个 。