最初に動的計画法が思いつくと思われますが、 から現実的ではありません。さらに素数判定も行うことができません。ミラーラビン素数判定法を用いたとしても、該当する素数を調べるために から 以下の正整数を調べないといけなくなります。
どの方法でも解く術はありません。唯一あるとしたら、 で解くことなど定数時間で解くことがカギです。
問題から「相異なる複数の素数の和が にすることができるか?」という問題にできるので、この問題文から で解く必要があります。
であり、 であることから、これはRichertの定理を適用することができます。
この定理によると、「 より大きい整数は相異なる複数の素数の和で表すことができる」ことが証明されています。したがって のすべての場合について答えは Yes
です。また を考えると、素数の和で表せない整数は のみです( では 円硬貨を 枚使えばいいが、 枚しかないので払うことができない。それか 円硬貨を使えばよいが、 は素数ではないのでその硬貨は存在しない )。
以上から に限り素数の和で表せず、それ以外の場合では必ず表すことができます。よってこの問題を で解くことができました。