View Code of Problem 93

#include "stdio.h"
#include "math.h"
#include "string.h"

void main()
{
	int m,n;
	long int i,k,j;
	int sum1,sum2;
	int a[2000][2];
	scanf("%d%d",&m,&n);
	for(k=0,i=m+1;i<n;i++)
	{
		sum1=0,sum2=0;
		for(j=1;j<=i/2;j++)
		{
			if(i%j==0)
				sum1=sum1+j;									//i的因子和为sum1
		}

		for(j=1;j<=sum1/2;j++)									//sum1的因子和为sum2
		{
			if(sum1%j==0)
				sum2=sum2+j;
		}
		if(sum2==i&&sum1!=i)
		{
			a[k][0]=sum1;
			a[k][1]=i;
			k++;
		//	printf("%ld %ld\n",sum1,i);
		}
	}
	for(i=0;i<k;i++)				//去重
	{
		for(j=0;j<k;j++)
		{
			if(a[i][0]==a[j][1])
			{
				a[i][1]=0;
				a[i][0]=0;
			}
		}
	}
	for(i=0;i<k;i++)				
	{
		if(a[i][0]!=0)
			printf("%d %d\n",a[i][0],a[i][1]);
	}
}

Double click to view unformatted code.


Back to problem 93