当前位置: 代码迷 >> 综合 >> 欧拉计划21--Amicable numbers
  详细解决方案

欧拉计划21--Amicable numbers

热度:79   发布时间:2023-11-25 20:58:44.0

记d(n)为n的所有真因数(小于n且整除n的正整数)之和。如果d(a) = b且d(b) = a,且a ≠ b,那么a和b构成一个亲和数对,a和b被称为亲和数。例如,220的真因数包括1、2、4、5、10、11、20、22、44、55和110,因此d(220) = 284。284的真因数包括1、2、4、71和142,因此d(284) = 220。说明284和220是亲和数
求所有小于10000的亲和数的和。

#include<iostream>
#include<math.h>
using namespace std;int qh(int x){int temp = 0;for(int i=1;i<x;i++){if(x%i==0){temp+=i;}}return temp;
}int main()
{int sum = 0;for(int i=1;i<10000;i++){int t = qh(i);if(qh(t)==i&&t!=i){sum+=i;}}cout<<sum<<endl;return 0;
}

答案:31626