online_judge_1050

#include<stdio.h>
int wanshu(int);
int i,sum;
int main()
{
	int n,j;
	while(scanf("%d",&n)!=EOF)
	{
		if(n<1)
			continue;
		for(j=1;j<=n;j++)
		{
			if(wanshu(j))
			{
				if(j>6)
					printf(" %d",j);
				else
					printf("%d",j);
			}
		}
		printf("
");
	}
	return 0;
}
int wanshu(int m)
{
	sum=0;
	for(i=1;i<=m/2;i++)
		if(m%i==0)
			sum+=i;
	if(sum==m)
		return 1;
	return 0;
}

原文地址:https://www.cnblogs.com/abc-24990/p/4257525.html