输出1-1000的所有完数

完数的规则:它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void main()
{
	int num,n,i;
	int fct,sum;
	int a[50];
	
	for(num=2;num<=1000;num++)
	{
		n=num/2;
		sum=0;
		i=0;
		for(fct=1;fct<=n;fct++)
		{
			if(num%fct==0)//注意括号 
			{
			 sum += fct;
			 a[i++]=fct; //i记得自增 
			}
		}
		n=i;
		if(sum == num)
		{
		  printf("%d是完数,因子为:",num);
		  for(i=0;i<n;i++)
		  printf(" %d ",a[i]); 
		  printf("\n");//换行不要加错位置 
		}
	
	}
}
发布了11 篇原创文章 · 获赞 0 · 访问量 1

猜你喜欢

转载自blog.csdn.net/qq_38272075/article/details/105527988