View Code of Problem 93

//我等于你,你赋给我
#include<iostream>
#include<math.h>
using namespace std;
int a[10010];
int n,m;
int isClose(int n)
{
	int ans=0;
	int sqr=(int)sqrt(1.0*n);
	for(int i=2;i<=sqr;i++)
	{
		if(n%i==0)
		{
			ans+=(i+n/i);
		}
	}
	return ans+1;
}
int main()
{

	
	cin>>m>>n;
	for(int i=m;i<=n;i++)
	{
		a[i]=isClose(i);
	}

	for( int i=m;i<=n;i++)
	{
		int b=a[i];//b为待比较的另一数,现在做到了i的因子和等于b,需判断b的因子和是否等于i
		if(b<m||b>n||a[i]==i||i>=b)continue;
		if(a[b]==i)
			cout<<i<<" "<<b<<endl;
	}

	return 0;

   

}

Double click to view unformatted code.


Back to problem 93