输入
输入两个正整数m和n,1<m<=n<=10000。
两个数的正因子之和等于对方就叫友好数对
输出
输出m和n之间的所有友好数对。
在输出每个友好数对时,要求小数在前、大数在后,并去掉重复的数对。例如,220和284是一对友好数,而284和220也是一对友好数,此时只需输出220和284这对友好数。每个友好数对占一行,两数之间用空格隔开。
如果m和n之间没有友好数对,则输出“No answer”。
using namespace std;
int facsum(int n)
{
int i,sum=0;
for(i=1;i<n;i++)
{
if(n%i==0)
{
sum+=i;
}
}
return sum;
}
int main()
{
int m,n,flag=0,i,j,temp;
cin>>m>>n;
for(i=m;i<n;i++)
{
temp=facsum(i);//注意不要使用选择排序的方法,时间复杂度会很高。其次i<temp可以防止重复
if(i==facsum(temp)&&i<temp)
{
cout<<i<<" "<<temp<<endl;
flag=1;
}
}
if(flag==0)
cout<<"No answer";
return 0;
}