решать интересные задачи

May 18, 2020 10:15

делал тут по-приколу разные упражнения по программированию, решал всякие задачки в духе "напишите такую функцию, чтобы...".
завис на алгоритме поиска простых чисел.
не то, чтобы у меня долго не получалось, - нет.
просто "аппетит пришел во время еды".
написав функцию вычисления простых чисел, я пошел дальше и решил подсчитать, а столько их в диапазоне от 1 до n.
(кстати, почему-то во всех публикациях, что я нашел, 1 не считают как простое число, хм..)
завис на миллионе.
полдня гонял комп, который разогревался как утюг, я оптимизировал код: убрал все лишние проверки, отказался в Python от стандартных массивов (списки, Lists), добился дополнительной производительности за счет numpy.array, боялся, что int не вытянет по длине...
в итоге, примерно через 3 (три!) часа после очередного запуска программы, я добился результата. UPD: самая последняя оптимизированная версия работала 2 часа 40 минут.
и что?

да ничего. кому интересно подробней о простых числах и их доле в общем количестве чисел, посмотрите статью на wikipedia, - там все написано, и все уже подсчитано...
так зачем это все было нужно?...
...
вот так и в жизни ;)
раньше я был равнодушен к простым числам, а теперь люблю.
иногда, чтобы чему-то научиться или что-то понять, или сменить отношение,
важно потрудиться, потратить значительное время и прочувствовать...
а потом..
решать другие интересные задачи ;)
Удачи!
P.S.
количество простых чисел до 1 миллиона составляет 78 498 (1 не считают).
количество простых чисел как функция от общего количества чисел от 1 до 1000000 выглядит так:


software development, программирование, it

Previous post Next post
Up