На этом уроке мы сдеаем так, чтобы наш класс возвращал в цикл только простые числа, как и было задуманно изначально.
Дата отправки отчёта:
13 мая 2017 г.
Задание выполнено: за
15 мин.
Чему научился:
Глубже разобрался с задачей поиска простых чисел.
Что было сложным:
Не мог понять почему в методе IsPrime мы крутим цикл до prime/2, а не до prime-1. Но потом прочитал, что можно вообще до Math.Sqrt(prime). Также, не смог оценить мат. сложность реализации (в смысле О большого).
Комментарии:
Стало интересно оценить скорость работы алгоритма. Использовал StopWatch. Выяснилось, что дополнительный вызов метода IsPrime значительно замедляет поиск. А переустановка SetMax(number) на каждом шаге основного цикла - здорово ускоряет работу (порядка тысячи раз). Также логика подсказывает, что при вызове IsPrime() после каждого инкремента выполняется много лишней работы, так как перебираются каждый раз практически одни и те же числа. Не лучше ли вести какой-то список уже найденных простых чисел?
Научился: Новая запись реализации интерфейса типа bool IEnumerator.MoveNext() Пока я писал сигнатуру типа public void MoveNext() я понимал че происходит. А запись bool IEnumerator.MoveNext() меня пока смущает)
Научился: Составили алгоритм поиска простых чисел :) Трудности: Все было легко и понятно) У меня вопрос, то что я многое не понимаю из уроков это нормально?