程序设计高手请进

来源:百度知道 编辑:UC知道 时间:2024/07/11 05:07:01
求出1-32768之间同时满足下列条件的所有A和B:
1> 3<A<B<32768
2> A的因子只和等于B,B的因子只和等于A
谁有解决方法啊

#include <iostream>
#include <math.h>
using namespace std;

int sumofdevider(int number);

int main()
{
for(int i=3;i<32767;i++)
{
int sum=sumofdevider(i);
if(sum<=i)
{
continue;
}
if(sumofdevider(sum)==i)
{
cout<<i<<" "<<sum<<endl;
}
}
return 0;
}

int sumofdevider(int number)//求除了本身的因数之和
{
int sum=1;
for(int i=2;i<=sqrt(number);i++)
{
if(number%i==0)
{
if(i==sqrt(number))
{
sum+=i;
}
else
{
sum+=i+number/i;
}
}
}
return sum;
}