php gmp_factで階乗を求める

php gmp_factで階乗を求める

phpで、gmp_factを使用して、階乗を求めるサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

gmpインストール

インストールされていない場合は、インストールしておきます。webサーバーで利用する場合は、webサーバーも再起動します。

sudo dnf install php-gmp

// nginxを再起動
sudo systemctl restart nginx

windowsの場合は「php.ini」の以下をコメントアウトを外して有効して利用しているwebサーバーを再起動します。

extension=gmp

gmp_fact使い方

gmp_factを使用すれば、階乗を計算することが可能です。

gmp_fact("数値");
// 数値 × 数値 -1 × 数値 -2 .... 

以下は、階乗を計算するサンプルコードとなります。

<?php

var_dump(gmp_fact(3)); // 3 × 2 × 1
// class GMP#1 (1) {
//     public $num =>
//     string(1) "6"
//   }

echo gmp_strval(gmp_fact(3)) . PHP_EOL; // GMP 数を文字列に変換
// 6

var_dump(gmp_fact(10)); // 10 × 9 × ... 3 × 2 × 1
// class GMP#1 (1) {
//     public $num =>
//     string(7) "3628800"
//   }

echo gmp_strval(gmp_fact(10)) . PHP_EOL; // GMP 数を文字列に変換
// 3628800