PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのgmp_prob_prime()関数とは?GMP数値の素数判定方法を解説

PHPのgmp_prob_prime()関数は、GMP数値(任意精度整数)が素数である可能性を判定するための関数です。この関数を使用するには、GMP拡張モジュールが有効になっている必要があります。

大きな数値の素数性を厳密に証明するのは計算コストが非常に高いため、この関数は確率的な素数判定アルゴリズム(ミラー・ラビン法など)に基づいて、「確実に素数ではない」「おそらく素数である」「確実に素数である」の3段階で結果を返します。

構文

gmp_prob_prime($n)

パラメータ

  • n − 判定対象となるGMP数値。数値リテラルまたはGMP数値オブジェクトを指定できます。

戻り値

gmp_prob_prime()関数は、以下のいずれかの値を返します。

  • 0 − 数値は確実に素数ではない場合

  • 1 − 数値が素数である「可能性がある」場合

  • 2 − 数値が確実に素数である場合

使用例

以下に具体的な例を示します。

<?php
   echo gmp_prob_prime("11");
?>

出力結果

上記のコードを実行すると、次のような出力が得られます。

2

この例では、11は小さな素数であるため、関数は「2(確実に素数)」を返しています。一方で、合成数(例:10や15など)を指定した場合は「0」が返され、大きな数値で判定が確定できない場合は「1」が返されます。

  1. PHPのgregoriantojd()関数とは?構文・パラメータ・使用例を解説

    PHPのgregoriantojd()関数は、グレゴリオ暦(現在広く使われている暦)の日付をユリウス通日(Julian Day Count)に変換し、その結果としてユリウス日番号を返す関数です。ユリウス通日は、天文学や歴史上の日付計算などで利用される連続した日数表現であり、異なる暦同士の日付比較や計算を簡単に行えるのが特徴です。 注意 − グレゴリオ暦として有効な範囲は、紀元前4714年11月25日から紀元9999年12月31日以降までとなっています。この範囲外の日付を指定すると、正しい結果が得られない場合があります。 構文 GregorianToJD(month, date, year)

  2. PHPのfscanf()関数とは?使い方とフォーマット指定子を徹底解説

    PHPのfscanf()関数は、オープン中のファイルから入力を読み込み、指定されたフォーマットに従って解析するための関数です。パラメータを2つだけ渡して呼び出した場合、解析結果の値が配列として返されます。基本構文fscanf(file_pointer, format, mixed)パラメータの詳細file_pointer − fopen()関数を使って作成されたファイルシステムポインタリソースを指定します。format − 読み込むデータの形式(フォーマット)を指定します。使用できる主なフォーマット指定子は以下の通りです。%% − パーセント記号(%)そのものを返す%b − 2進数として読み込