求助:求亲密数对问题
//求1000以内的亲密数对,亲密数对的定义为:若正整数A的所有因子(不包括A)之和//为B,B的所有因子(不包括B)之和为A,且A!=B,则称A与B为亲密数对。
//如:220的因子之和 1+2+4+....+110=284
// 284的因子之和 1+2+....+142=220
#include "stdafx.h"
#include "iostream.h"
void main()
{
int x,y;
int i,j;
int sum1=0,sum2=0;
for(x=1;x<=1000;x++)
{
for(i=1;i<x;i++)
{
if(x%i==0)
sum1+=i;
}
for(y=1;y<=1000;y++)
{
for(j=1;j<y;j++)
{
if(y%j==0)
sum2+=j;
}
if(x==sum2 && y==sum1 && x!=y)
cout<<x<<"和"<<y<<"是亲密对数"<<endl;
}
}
}
请问错在哪了?
我来看看那
错的多了去了首先 你应该定义一个sum【1000】作为数组,不然你的sum1只能存放一个数,那就是1000的所有因子之和,一定不行,所以就错了!
把sum1和sum2 都改了,
在看看
估计应该行,我是这么向的 循环时应该每次都初始化sum1,sum2
#include "stdafx.h"
#include "iostream.h"
void main()
{
int x,y;
int i,j;
int sum1=0,sum2=0;
for(x=1;x<=1000;x++)
{
sum1 = 0;
for(i=1;i<x;i++)
{
if(x%i==0)
sum1+=i;
}
for(y=1;y<=1000;y++)
{
sum2 = 0;
for(j=1;j<y;j++)
{
if(y%j==0)
sum2+=j;
}
if(x==sum2 && y==sum1 && x!=y)
cout<<x<<"和"<<y<<"是亲密对数"<<endl;
}
}
} LZ牛人哦
页:
[1]
