在m到n内找出所有的亲密数对。
若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,则284、220也是1对亲密数。(一个数的因子不包含自己,但包含1)
输入格式:
两个数m和n。
输出格式:
每行两个数a,b,表示a和b是亲密数,且a<b;每行的第一个数按从小到大输出。两个数间用一个空格隔开。
输入样例:
18 299
输出样例:
在这里给出相应的输出。例如:
220 284
代码
#include <stdio.h>
#include <stdlib.h>
int main()
{ int a,b,m,n,k,q;
int g[100000];
q=0;
k=0;
scanf("%d %d",&a,&b);
for(m=a;m<=b;m++)
{
for(n=1;n<m;n++)
{
if(m%n==0)
{
k=k+n;
}
}
g[q]=k;
k=0;
q++;
}
for(m=0;m<q;m++)
{
for(n=a;n<=b;n++)
{
if(g[m]==n&&g[n-a]==m+a&&(m+a)!=n&&(m+a)<n)
{
printf("%d %d\n",m+a,n);
}
}
}
return 0;
}