/** * * @param $n * @param $divider * @return bool если $n! делится на $divider без остатка возвращает true, иначе false * @throws \InvalidArgumentException */ public function execute($n, $divider) { if ((int) $n != $n || (int) $divider != $divider || $n < 1 || $divider < 1) { throw new \InvalidArgumentException("wrong input params"); } if ($n >= $divider) { return true; } if ($this->isPrimeNumber($divider)) { return false; } $factorsDivider = $this->factor->factorize($divider); $i = 1; while ($i <= $n) { $factorsMultipliers = $this->factor->factorize($i); $this->applyFactorsMultipliers($factorsDivider, $factorsMultipliers); if ($this->isEnoughFactors($factorsDivider)) { return true; } $i++; } return false; }