ホームページ >バックエンド開発 >C++ >スマランダシュ-ヴェリン配列

スマランダシュ-ヴェリン配列

王林
王林転載
2023-09-09 11:45:03838ブラウズ

スマランダシュ-ヴェリン配列

この問題は、スマランダッシュ-ウェリン列の最初の m 項を出力することで構成されます。ここで、m は任意の正の整数です。 Smarandache-Wellin シーケンスの最初の m 項を出力するアルゴリズムを C で見てみましょう。しかしその前に、スマランダッシュ-ウェリン数列を理解する必要があります。

A スマランダッシュ-ウェリン数列は、スマランダッシュ-ウェリン数から構成される数列です。スマランダッシュ・ウェリン数は、連続する素数を連結して形成される整数です。最初のいくつかの素数は 2、3、5、7、11、13、17、19、23…です。

  • シーケンスの最初のスマランダッシュ-ウェリン数は 2 です。

  • シーケンスの 2 番目の数値は 23 で、最初の 2 つの連続する素数を接続することによって形成されます。

  • シーケンスの 3 番目の数値は 235 で、最初の 3 つの連続する素数を接続することによって形成されると言えます。

同様に、スマランダッシュ-ウェリン数列の m 番目の項目は、最初の m 個の連続する素数の接続であると結論付けることができます。 6 番目のスマランダッシュ-ウェリン数が必要だと仮定すると、それは最初の 6 つの連続する数の連結、つまり 23571113 になります。

上記の問題では、正の整数 N を取得します。タスクは、スマランダッシュ-ウェリン数列の最初の N 個のスマランダッシュ-ウェリン数を出力することです。例えば、###

入力: N=4

出力: 2 23 235 2357

説明: これらは、最初の 4 つの連続する素数によって形成されるスマランダッシュ-ウェリン数列の最初の 4 つの数です。

入力:N=7

出力: 2 23 235 2357 235711 23571113 2357111317

説明: Smarandache-Wellin シーケンスの i 番目の項目は、最初の i 個の連続する素数の接続です。ここで、i は 1 以上 7 以下です。 ###アルゴリズム###

この方法は、見た目と同じくらい簡単かもしれません。スマランダッシュ・ウェリン数列の N 番目の項は、最初の N 個の連続する素数の結合であることがわかっています。

したがって、最初の N 個の連続する素数を見つけると、各 i 番目の項の I 個の連続する素数をさらに連結することによって、スマランダッシュ-ウェリン数列の最初の N 個のスマランダッシュ-ウェリン数が得られます。以下の手順に従って、最初の N 個の素数を見つけることができます -

素数の数を保存して最初の N 個の連続する素数を取得するには、変数を作成します。
  • ループを使用して、カウントが N に等しくなるまで数値が素数かどうかをチェックし、最初の N 個の素数を取得します。素数の場合は、素数の数を 1 増やします。
  • 数値が素数かどうかを判断するには、i=2 から始めて、数値が平方根以下になるまで for ループを繰り返します。素数には数値自体と 1 の 2 つの因数しかないため、その数値が他の数値で割り切れる場合、その数値は素数ではありません。
  • 数学によると、合成数には常に、数値の平方根より小さい因数が少なくとも 1 つ含まれます。したがって、数値が素数かどうかを判断するには、単純に数値の平方根まで反復するだけです。
  • このようにして、2 から始めて、素数の数が N になるまで 1 つずつ確認して、最初の N 個の連続する素数を取得し、配列に格納することができます。
この問題の次のタスクは、Smarandache-Wellin シーケンスの最初の N 項目を出力することです。このタスクは非常に簡単です。これを行うには、ネストされたループを使用し、最初の N 個の連続する素数を格納する配列を反復処理します。ループで 0 から配列のサイズまで反復し、次にネストされたループで 0 から i まで反復し、i までのすべての素数を出力します。この方法で、i 番目の項目ごとにそれを実現できます。まず連続する素数。

###方法###

次の手順で目的の出力を得ることができます -

数値が素数かどうかを確認するには、関数を作成します。

  • 最初の N 個の素数を配列に格納し、その配列を使用して最初の j 個の連続する素数を連結して j 番目の項を取得する別の関数を作成します。

  • 素数の数を数えるために count という名前の変数を宣言します。そして、count が N に等しくなる前に、2 から始まる各数値が素数かどうかがチェックされます。素数の場合は、作成した配列に格納されます。

  • 各項の最初の N 個の必須素数を連結するには、ネストされた for ループを使用します。これは、Smarandache-Wellin 数列の最初の N 項を出力する方法です。

  • ###例###
  • 上記のアルゴリズムを使用して問題を解決するための C コード -

    リーリー ###出力### リーリー

  • 時間計算量: O(N*logN)
、N までの各数値が素数であるかどうかを確認する必要があるためです。

空間複雑さ: O(N)

、サイズ N の配列を使用するため。

###結論は###

この記事では、スマランダッシュ-ウェリン配列とその背後にある概念について学びました。効率的なアルゴリズムを使用して、Smarandache-Wellin シーケンスの最初の N 項を C で出力する方法も確認しました。

この記事を読んで、この問題に関するすべての概念を明確に理解していただければ幸いです。

以上がスマランダシュ-ヴェリン配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。