Problem
Example&Prompt
Solution
首先看到 \(a^3-b^3\) 不太好乱搞,考虑因式分解再乱搞:
因为 \(a,b\) 为正整数,即 \(a,b\ge 1\),所以 \(a^2+ab+b^2\ge 3\),再因为 \(p\) 为质数,所以 \(a-b=1\),否则 \(p\) 不可能为质数。
根据 \(a-b=1\),我们就只要知道 \(a\) 或 \(b\) 中的任意一个就可以求出答案。
考虑枚举 \(a\in [\ 1,\sqrt p\ ]\),就可以这样我们就能用 \(O(1)\) 的时间求出 \(p\) 是否满足条件。
时间复杂度为 \(O(\sqrt p+T)\)。
Code
for (int i=1;i<=1000000;i++)
f[(i-1)*(i-1)+i*i+i*(i-1)]=true;