素晴らしい質問です。これはまだ多項式時間(桁数の多項式、ここでは20)であることが証明されていません—これはFinding Primes Polymathプロジェクトであり、数人の数学者(FieldsMedalistsのTerenceTaoとTimGowersを含む!)がアルゴリズムですが、プロジェクトはまだ具体的な結果を出していないようです。
とにかく、あなたができることがいくつかあります。あなたや他の人が指摘しているように、そのうちの1つは、ミラーラビンのような素数判定を使用して、各数値を試し、それが素数であるかどうかを確認することです。よく知られている数論的ヒューリスティック(素数定理に基づく)によると、nに近い数が素数である「確率」は約1 / ln(n)であるため、10 ^ 20の場合、46個の数ごとに約素数。したがって、k個の20桁の数値が必要な場合は、約50k個の数値に対してミラーラビン検定を実行します。
2番目のアプローチは、多くのA(慎重に考えていない)に対してこれを行う場合は、代わりにエラトステネスのふるいのようなふるいを使用する方が速いと思います。k個の素数が必要な場合は、約5万個(安全のためにそれ以上)の配列を作成し、それらをふるいにかけます。いくつかの数より少ない素数の事前計算されたリストから始めます。(10 10は完全に正しいですが、いくつかの合成数を許容することをいとわないので、たとえば最初の5,000万の素数によるテストなど、より小さな素数のリストで、982,451,653未満の素因数がないことを確認できます。それらの多くではありません。)
3番目のアプローチは、この問題に対する他の誰かの実装を見つけることです。:-)たとえば、番号を指定したり、次の素数を検索したり、次の10個の素数を検索したりするWebページがあります。オンラインで使用する場合は、手作業でコピーする必要があるようですが、ソースコードも利用できます。