Л А Б О Р А Т О Р И Я

актуальных

РЕШЕНИЙ


PHP Prime number - TEST

решение тестовой задачи на PHP

От одной из компаний получил тестовое задание, которое выполнено, по словам специалистов компании, самым простым способом. Считаю полезным рассмотреть и пояснить выполнение задачи.

Описание задачи:

Задание PHP TaxRate

Задача показалась стандартной и пробежался по Интернету, чтобы найти варианты ее решения, которые могут предложить другие программисты.

Увидел разные варианты, от решения "в лоб" - перебор всех чисел от 1 до заданного с проверкой целого деления, до несколько экстравагантных, с созданием объекта класса и обработки функционала через методы (хотя осуществлялся тот же самый перебор " в лоб").

Но, как оказалось, в написании своей функции уже давно нет необходимости. Математический аппарат PHP очень хорошо развит, и в языке присутствует функция, которая позволяет определять является ли число простым. Эта функция gmp_prob_prime.

Алгоритм функции построен на тесте Миллера-Рабина, который является расширением теста Ферма, и позволяет с высокой степенью вероятности определять составные числа.

Результат проверки числа данной функцией может быть 0 - число не является простым однозначно, 1- число возможно простое, 2 - число точно простое.

Есть и другие методы (тесты) для определения является ли число простым, но сейчас этот вариант вероятно более привлекателен по результативности и скорости обработки.

Вот такой результат решения задачи получился:

PHP function Prime

Удачи в разработке!



другие материалы: