View Code of Problem 93

#include<stdio.h>
int ReasonNumber(int n);
int main()
{
	int m,n,a,b;
	scanf("%d %d",&m,&n);
	for(int i=m;i<=n;i++)
	{
		a=ReasonNumber(i);
		b=ReasonNumber(a);
		if(b==i&&a>i)			//若i与另一个未知数未亲密数,则i的因子数之和即为x,则可通过i的因子数值之和求得x的因子数值之和,且x的因子数值之和即为i,
								//这样肯定会颠倒重复,所以加一个条件x>i;即可!!!!!!! 
		{
			printf("%d %d\n",i,a);
		}	
	}
	return 0;
}
int ReasonNumber(int n)
{
	int sum=0;
	for(int i=1;i<n;i++)
	{
		if(n%i==0)
		{
			sum+=i;
		}
	}
	return sum;
}

Double click to view unformatted code.


Back to problem 93