php gmp_perfect_powerで累乗数であるかを判定する

  • 作成日 2021.12.10
  • 更新日 2022.04.09
  • php
php gmp_perfect_powerで累乗数であるかを判定する

phpで、gmp_perfect_powerを使用して、累乗数であるかを判定するサンプルコードを記述してます。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_perfect_power使い方

gmp_perfect_powerを使用すれば、累乗数であるかを判定することが可能です。

累乗数は、mのk乗で、m, k はともに自然数で k は 2 以上である数値

gmp_perfect_power("数値");
// 累乗数である場合は true, そうでない場合は false

以下は、累乗数を判定するサンプルコードとなります。

<?php

var_dump(gmp_perfect_power(9)); // 3の2乗
// bool(true)

var_dump(gmp_perfect_power(27)); // 3の3乗
// bool(true)

var_dump(gmp_perfect_power(81)); // 3の4乗
// bool(true)

var_dump(gmp_perfect_power(2));
// bool(false)