问题描述
- 急救 亲密对数 C++ 找不到错在哪里
- 求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匹配。
时间: 2024-11-01 16:29:39