【发布时间】:2018-11-12 14:17:03
【问题描述】:
这是一个应该只添加素数并忽略非素数但它不能正常工作的循环,我的技能非常基础,所以请尽量简化你的答案,
#include <iostream>
using namespace std;
int main()
{
int n = 0, a = 0, sum = 0;
cin >> n;
for (int j = 1; j <= n; j++)
{
cin >> a;
if (a == 1)
{
continue;
}
if (a == 2 || a == 3)
{
sum += a;
}
if (a % 2 == 0)
{
continue;
}
for (int i = 3; i < a; i++)
{
if (a % i != 0)
{
sum += a;
}
else
{
continue;
}
}
}
cout << sum;
return 0;
}
【问题讨论】:
-
看不懂
a的作用。我想应该是j而不是。此外,测试“是否是素数”应该在for (int i = ...)循环结束时终止,而不是在循环内部。更好:实现和使用函数bool isprime (int a) {...} -
您是否尝试调试过您的代码?如果你没有,请做。