<?php // n(2n -1) は三角数になる。 // 2n - 1 = m としたとき、 n = (m + 1) / 2 となる。 // m * (m + 1)/2 となり、三角数である。 // 五角数と六角数だけ比較すればよい。 $n5 = 2; $n6 = 2; $pentagon = $n5 * (3 * $n5 - 1) / 2; $hexagon = $n6 * (2 * $n6 - 1); $i = 0; while(true) { if($pentagon < $hexagon) { $n5++; $pentagon = $n5 * (3 * $n5 - 1) / 2; } else if($pentagon > $hexagon) { $n6++; $hexagon = $n6 * (2 * $n6 - 1); } else { $i++; if($i == 2) { break; } else { $n5++; $pentagon = $n5 * (3 * $n5 - 1) / 2; $n6++; $hexagon = $n6 * (2 * $n6 - 1); } } } echo $pentagon."\n"; ?>