青少年编程知识记录 codecoming

亲和数

【题目描述】

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

【输入描述】




【输出描述】

1行,分别为a和b(a<b)。

【输入样例】



【输出样例】

#include<iostream>
using namespace std;
int judge(int n);
int main()
{
   long int i;
   for(i=1;; i++) //从1开始枚举
   {
       if( i==judge(judge(i)) && i!=judge(i) )//num(num(i))即为i因子之和的因子之和
       {
           cout<<i<<" "<<judge(i)<<endl;//i与judge(i)即满足条件的一组亲和数
           break;//退出
       }
   }
   return 0;
}
int judge(int n)
{
   long int sum=0;
   long int i;
   for(i=1; i<n/2+1; i++)
       if(n%i==0)
           sum+=i;
   return sum;
}



(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:题解目录 浏览: