/** * Resolve the problem. * * @param int $integer Integer * * @return int Result */ public function resolve($integer) { $primeObj = new Prime($integer + 2); $primeFactorList = array(); for ($i = 2; $i <= $integer; ++$i) { $primesFactor = $primeObj->getPrimesFactor($i); $primeFactorOccurence = array_count_values($primesFactor); foreach ($primeFactorOccurence as $prime => $occurence) { if (!(array_key_exists($prime, $primeFactorList) && $occurence <= $primeFactorList[$prime])) { $primeFactorList[$prime] = $occurence; } } } $result = 1; foreach ($primeFactorList as $num => $occurence) { $result *= $num ** $occurence; } return $result; }
/** * Resolve the problem. * * @param int $integer Integer * * @return int Result */ public function resolve($integer) { $prime = new Prime(); return $prime->getOccurencePrime($integer); }
/** * Resolve the problem. * * @param int $integer Integer * * @return int Result */ public function resolve(int $integer) : int { $prime = new Prime(); $primesFactor = $prime->getPrimesFactor($integer); return max($primesFactor); }
/** * Test method. */ public function testOccurencePrime10001() { $prime = new Prime(); $this->assertEquals(104743, $prime->getOccurencePrime(10001)); }