C++求助

P5723 【深基4.例13】质数口袋

您的素数判断逻辑存在错误,导致输出结果不正确。 您的素数判断逻辑中的变量b没有在每次循环中重置为1,导致逻辑混乱。 为了解决这些问题,您可以按照以下步骤进行修改: 在每次循环开始时,将变量b重置为1。 在判断素数时,需要将判断逻辑放在内层循环结束后,以确保在内层循环结束后再进行判断 ```c #include <iostream> using namespace std; int main() { int a, s = 0, b = 1, s1 = 0, s2 = 0; cin >> a; if (a % 2 != 0) { s = a + 1; } else { s = a; } for (int i = 2; i <= s; i++) { b = 1; // 重置b为1 for (int j = 2; j <= i - 1; j++) { if (i % j == 0) { b = 0; break; // 如果能整除,则不是素数,直接跳出内层循环 } } if (b == 1) { s2 = a - i; } if (b == 1 && s2 >= 0) { cout << i << endl; s1 += 1; a -= i; } } cout << s1; return 0; } ```
by laoyuan @ 2024-04-04 22:01:53


@[laoyuan](/user/1054114) 好的,谢谢大佬
by ytezwsw @ 2024-05-04 08:09:57


|