判定スレ落ちてるので、こちらに書きます。

判定用アルゴリズムで、こういうの考えました。
多分速くは無いけど、メモリはそんなに使わないと思います。
2〜7の素数はデフォルトとして桁数が多い場合の処理を考えてみました。

たとえば8137の場合
もしこの数が素数でなければ、下1桁が1×7、または3×9の数字の積だと言うことがわかる。

そこで(1×7の計算は終わった物とします)
  ___9
 3) 8137
      27
    811
3と掛けて下一桁が1になるのは7だから

  ___79
 3) 8137
     237
    79
3と掛けて下一桁が9になるのは3だから

  ____379
 3) 8137
    1137
    7
3と掛けて下一桁が7になるのは9だけど、3×9379はもとの数より大きいのでスキップ

つづく