2988 - 【函数】亲和数

上机练习6.1.5    自然数a的因子是指能被a整除的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。

题目输入

无输入。

题目输出

最小的一对亲和数(两数不相等哦),小数在前大数在后,中间用一个空格分隔。

输入/输出样例

题目输入


                

题目输出


                

提示

提示:a 从2开始向上循环,求出b,验证a与b是否是亲和数,如是亲和数结束循环并输出,否则a+1继续循环。

C语言解答

#include<stdio.h>
#include<math.h>
int main()
{
    int i,f,x,y;
    i=2;
    f=0;
    while(f!=1)
    {
    x=i;
    y=yinzi(i);
 
    if(x==yinzi(y)&&x!=y)
    {  printf("%d %d",x,y);
    	f=1;
    	
    	
    	
	}
    
    	
    	
    i++;	
    	
    	
    	
	}
	
	
	
	
	
	
}
int yinzi(int a)
{   int i,s;
    s=0;
	for(i=1;i<=a-1;i++)
	
	if(a%i==0)
	s=s+i;

	return s;
	
	
	
}

C++解答

#include<iostream>
#include<cstdio>
using namespace std;
int qhs(int);
int main()
{
	int a,b,f=1;
	a=2;b=0;
	while  (f)
	{
		b=qhs(a);
		if  ((a==qhs(b))&&(a!=b))
		{
			cout<<a<<' '<<b<<endl;
			f=0;
		}
		a=a+1;
	}
	return 0;
}

int qhs(int n)
{
	int s=0;
	for (int i=1; i<n; i=i+1)
		if (n % i ==0)  s+=i;
	return s;
}

提示

提示:a 从2开始向上循环,求出b,验证a与b是否是亲和数,如是亲和数结束循环并输出,否则a+1继续循环。

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题