求400以内的亲密数。
#include
#include
using namespace std;
int main()
{
int a, b, sum1, sum2, i, j;
for (a = 1; a <= 400; a++)
{
for (i = 1; i <= a; i++)
{
sum1 = 0;
if (a%i == 0)
sum1=sum1+i;
}
}
for (b = 1; b <= 400; b++)
{
for (j = 1; j < b; j++)
{
sum2 = 0;
if (b%j == 0)
sum2 = sum2 + j;
}
}
if (sum1 == b&&sum2 == a&&a != b)
cout << a << "和" << b << "是亲密对数"<< endl;
system("pause");
return 0;
}
运行的话什么都显示不出来,我觉得和网上的差不都啊
虽然完全不知道lz的题目是什么意思...以下是我个人臆想
#include<iostream>
using namespace std;
int main()
{
int a, b, sum1, sum2, i, j;
for (a = 1; a <= 400; a++)
{
sum1 = 0;
for (i = 1; i < a; i++)
{
if (a%i == 0)
sum1=sum1+i;
}
// cout << sum1 << endl;
for (b = a + 1; b <= 400; b++)
{
sum2 = 0;
for (j = 1; j < b; j++)
{
if (b%j == 0)
sum2 = sum2 + j;
}
// cout << sum2 << endl;
if (sum1 == b&&sum2 == a&&a != b)
cout << a << "和" << b << "是亲密对数"<< endl;
}
}
return 0;
}
一些逻辑错误。
1.sum1=0,sum2=0写for循环外面。
2.计算sum1和sum2的时候多加了一个a和b本身。
3.for (b = 1; b <= 400; b++)循环部分应该放到for (a = 1; a <= 400; a++)循环里面,每个a都要和400个b匹配。