よっしゃパクるぜ!!
https://qiita.com/yukid/items/3bb121e151903666a37e
「php 素数」ターンッ
Google「GMP関数使え」
<?php
$start = microtime(true);
$min = DateTime::createFromFormat('Ymd', '20190101');
$max = DateTime::createFromFormat('Ymd', '30181231');
$today = new DateInterval('P1D');
$primesFound[1] = 0;//たぶん素数
$primesFound[2] = 0;//確実に素数
do {
$x = $min->format('Ymd');
$primeStatus = gmp_prob_prime($x);
if ($primeStatus === 1 || $primeStatus === 2) {
echo $min->format('Y年m月d日') . PHP_EOL;
$primesFound[$primeStatus]++;
}
$min->add($today);
} while ($min <= $max) ;
echo "たぶん素数の数:{$primesFound[1]}.確実に素数の数:{$primesFound[2]}.". PHP_EOL;
$stop = microtime(true);
echo $stop - $start . PHP_EOL;
//約1000年を1.3秒
返り値
この関数が 0 を返す場合、a は確実に素数ではありません。 1 を返す場合、a は「おそらく」 素数です。2 を返す場合、a は確実に素数です。
おそらく?
この関数は、Miller-Rabin の確率的テストを使用して、 その数が素数かどうかを調べます。
ん?
なるほどわからん。
と言うか先駆者が居た
https://qiita.com/rana_kualu/items/04cb330a0949f48cb7ab
https://qiita.com/rana_kualu/items/8b4e09f0410605f8180c