На этом уроке мы перепишем алгоритм перебора простых чисел с использованием списка, который будет постепенно, по мере необходимости, пополняться новыми простыми числами.
Дата отправки отчёта:
1 мая 2016 г.
Задание выполнено: за
10 мин.
Чему научился:
Освежил в памяти работу с List<> (шутка, List не забыть, т. к. он очень часто используется)
Что было сложным:
---
Комментарии:
Теперь алгоритм очень прост для восприятия, чист и понятен. В конкретно нашем случае двойку можно было не сохранять в список, т. к. у нас потом идет перебор только по нечетным числам, которые заведомо на 2 не делятся, но мы с завидной упрямостью каждое все же пробуем разделить. Хотя, конечно, класс от этого перестанет быть универсальным, но ведь у нас все же нет публичного доступа к List<long> primes из вне и если нам потребуется список простых чисел еще раз, мы начнем генерировать его заново... %)
Научился: Добавили в наш класс (перечисляемые простые числа) лист, куда записали найденные значения. Трудности: С вложенным итератором уже мозг закипает как оно работает. Но при этом все выглядит очень просто и логично.
Научился: Создал список List, добавил в программу алгоритм перебора простых чисел. Узнал, что yield создаёт коллекцию элементов не всю сразу, а по мере необходимости. Разложил число 614889782588491410 на простые множители. Получился список всех простых чисел от 2 до 47.