超时求救

P1304 哥德巴赫猜想

@[Gcysnd](/user/928434) ```cpp #include <bits/stdc++.h> using namespace std; bool one(int x){ for (int i=2;i<=sqrt(x);i++){ if (x%i==0){ return false; } } return true; } int main() { int a; cin>>a; for (int i=1;i<=a/2-1;i++){ int b=2*i+2; for (int g=2;g<b;g++){ if (one(g)&&one(b-g)){ cout<<b<<"="<<g<<"+"<<b-g<<endl; break; } } } return 0; } ```
by love20110429 @ 2024-02-26 20:32:02


@[Gcysnd](/user/928434) 求关
by love20110429 @ 2024-02-26 20:32:29


@[Gcysnd](/user/928434) 可以发现对于 $(i,j)$ 而言有唯一的 $k$ 使得 $j+k=i$ 所以可以直接计算 $k=j-i$,就不用循环遍历 $k$ 了
by zhouzihang1 @ 2024-02-26 20:35:34


@[zhouzihang1](/user/827018) 谢谢,已解决
by Gcysnd @ 2024-02-26 20:41:41


|