为啥TLE啊!!??

P1304 哥德巴赫猜想

endl改成'\n' 因为endl很慢
by _czy @ 2024-02-03 16:19:12


@[Allen_Z](/user/514463) `bool f(int n)` 定义为 `bool` 类型,需要有返回值。 洛谷编译器会在 O2 环境下将无返回值的非 `void` 函数优化为死循环。
by Terrible @ 2024-02-03 16:41:26


@[Terrible](/user/195942) @[_czy](/user/742275) 谢谢大佬
by Allen_Z @ 2024-02-04 21:40:35


```cpp #include <iostream> #include <algorithm> using namespace std; bool is_prime(int n){ for(int i = 2; i * i <= n; ++i){ if(n % i == 0){ return false; break; } } return true; } int main() { int N; cin >> N; for (int i = 4; i <= N; i += 2) { cout << i << "="; for(int j = 2; j < i; ++j){ if(is_prime(j) && is_prime(i - j)){ cout << j << "+" << i-j << endl; break; } } } return 0; } ``` 这是我的代码,你看看有什么区别。可能是函数定义的问题,判断的直接用bool就行了,不用返回1返回0。
by Feifly @ 2024-02-20 20:41:28


|