打卡15
3.2亲密数
思路很简单,先遍历1-3000,把因子算一下,加一下,然后再算和的质因数和,看是否相等即可,时间复杂度不是很高
流程也很简单
#include<bits/stdc++.h>
using namespace std;
int f(int x)//求一个数的因子和
{
int sum=0;
for(int i=1;i<=x/2;i++)
{
if(x%i==0)sum+=i;
}
return sum;
}
int main()
{
for(int i=1;i<3000;i++)
{
int sum=f(i);//i的因子和
int zs=f(sum);//sum的因子和
if(zs==i&&i<sum)
{
cout<<i<<' '<<sum<<endl;
}
}
return 0;
}