打卡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;
}

posted on 2023-04-28 11:42  临江柔  阅读(12)  评论(0编辑  收藏  举报