亲密数:
如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B成为亲密数。求3000以内的全部亲密数。
解题思路:
利用for循环遍历a从1取到3000,循环内利用循环判断a的因子并且用b储存a的因子之和,n储存b的因子之和,条件判断是否满足,满足则输出
代码:
#include<iostream>
using namespace std;
int main()
{
int a,i,b,n;
cout<<"There are following friendely--numbers pair smaller than 3000:"<<endl;
for(a=1;a<3000;a++)
{
for(b=0,i=1;i<=a/2;i++)
{
if(a%i==0)
b+=i;
}
for(n=0,i=1;i<=b/2;i++)
{
if(b%i==0)
n+=i;
}
if(n==a&&a<b)
cout<<a<<"--"<<b<<" ";
}
return 0;
}
标签:cout,int,因子,整数,亲密,3000 From: https://www.cnblogs.com/zljzy/p/17347580.html