Просеивание числового песка в поисках простых чисел


Содержание

Алгоритмы нахождения простых чисел

Простые числа – это натуральные числа, большие единицы, которые имеют только два делителя: единицу и само это число.

Примеры простых чисел: 2 , 3, 5, 7, 11, 13…

(Единица не является простым числом!)

Существует множество задач, связанных с простыми числами, и хотя формулируются они достаточно просто, решить их бывает очень трудно. Некоторые свойства простых чисел еще не открыты. Это побудило немецкого математика Германа Вейля (Wayl, 1885-1955) так охарактеризовать простые числа: «Простые числа – это такие существа, которые всегда склонны прятаться от исследователя».

Во все времена люди хотели найти как можно большее простое число. Пока люди считали только при помощи карандаша и бумаги, им нечасто удавалось обнаружить новые простые числа. До 1952 г. самое большое известное простое число состояло из 39 цифр. Теперь поиском все больших простых чисел занимаются компьютеры. Это может представлять интерес для любителей рекордов.

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

Задача 1. Определение простого числа.

Составить программу, которая будет проверять, является ли введенное число простым.

Самый простой путь решения этой задачи – проверить, имеет ли данное число n (n >= 2) делители в интервале [2; n-1]. Если делители есть, число n – составное, если – нет, то – простое. При реализации алгоритма разумно делать проверку на четность введенного числа, поскольку все четные числа делятся на 2 и являются составными числами, то, очевидно, что нет необходимости искать делители для этих чисел. Логическая переменная flag в программе выступает в роли “флаговой” переменной и повышает наглядность программы, так, если flag = true, то n –простое число; если у числа n есть делители, то “флаг выключаем” с помощью оператора присваивания flag:= false, таким образом, если flag = false, то n – составное число.

Задача 2. Нахождение простых чисел в заданном интервале.

Составить программу, которая напечатает все простые числа в заданном интервале [2, m], для m>3 и подсчитает их количество.

Для реализации данного алгоритма необходимо проверить каждое число, находящееся в данном интервале, — простое оно или нет. Однако для этого машине пришлось бы потратить много времени. Поэтому подумаем, каким образом можно оптимизировать алгоритм, описанный в задаче 1, применительно к задаче 2?

Будем использовать следующие приемы оптимизации алгоритма:

  1. рассматривать только нечетные числа;
  2. использовать свойство: наименьшее число, на которое делится натуральное число n, не превышает целой части квадратного корня из числа n;
  3. прерывать работу цикла, реализующего поиск делителей числа, при нахождении первого же делителя с помощью процедуры Break, которая реализует немедленный выход из цикла и передает управление оператору, стоящему сразу за оператором цикла.

Как правило, учащиеся сами догадываются о приемах №1 и №3, но не всегда знают, как реализовать в программе досрочное завершение цикла, прием же №2 для них не очевиден, поэтому, возможно, учителю следует остановиться на нем более подробно или же привести полное доказательство этого утверждения.

Счетчик чисел будет находиться в переменной k. Когда очередное простое число найдено, он увеличивается на 1. Простые числа выводятся по 10 в строке, как только значение счетчика становится кратным 10, курсор переводится на новую строку.

Близнецы

Два нечетных простых числа, разнящихся на два, называются близнецами. Близнецами являются, например, числа 5 и 7, 11 и 13, 17 и 19 и т.д. В начале натурального ряда такие пары чисел встречаются достаточно часто, но, по мере того как мы продвигаемся в область больших чисел, их становится все меньше и меньше. Известно, что в первой сотне имеется целых 8 близнецов, дальше они расположены очень неравномерно, их можно обнаружить все реже и реже, гораздо реже, нежели сами простые числа. До сих пор неясно, конечно ли число близнецов. Более того, еще не найден способ, посредством которого можно было бы разрешить эту проблему.

Задача 3. Поиск пар чисел близнецов.

Написать программу, которая будет находить все числа близнецы в интервале [2; 1000] и подсчитывать количество пар чисел близнецов.

Фактически будем использовать алгоритм и программу Задачи 2. В этом алгоритме нужно использовать дополнительные переменные для хранения двух “последних” простых чисел и проверять условие наличия близнецов – их разность должна быть равна двум.

Задача 4. Нахождение простых чисел в заданном интервале с выводом в выходной файл.

Реализовать алгоритм задачи 2 с выводом простых чисел в выходной файл по 10 в строке. Последняя строка файла должна содержать информацию о количестве простых чисел в заданном интервале.

Задача 5. Приемы оптимизации алгоритма задачи 4.

Оптимизировать алгоритм задачи 4 следующим образом: найденные простые числа записывать в файл, делимость очередного кандидата проверять только на числа из этого файла.

Словесное описание алгоритма:

  1. Вводим правую границу диапазона – m;
  2. Записываем двойку и тройку в файл;
  3. Пока очередное нечетное число i m ), вывести в файл количество простых чисел.

Эратосфеново решето

Греческий математик Эратосфен (275-194 гг. до н.э.) предложил интересный метод нахождения простых чисел в интервале [2; n]. Он написал на папирусе, натянутом на рамку, все числа от 2 до 10000 и прокалывал составные числа. Папирус стал, как решето, которое “просеивает” составные числа, а простые оставляет. Поэтому такой метод называется Эратосфеновым решетом. Рассмотрим подробнее этот метод.

Пусть написаны числа от 2 до n:

Первое неперечеркнутое число в строке является простым. Таким образом, 2 – простое число. Начинаем “просеивание” с него, перечеркивая все числа, которые делятся на 2:

Далее берем следующее по порядку неперечеркнутое число и перечеркиваем все числа, кратные ему и т. д. Таким образом, мы перечеркнем все составные числа, а простые останутся неперечеркнутыми:


Все числа указанного интервала можно рассматривать как множество и в дальнейшем из этого множества будем исключать (отсеивать) все составные числа.

Задача 6. Нахождение простых чисел с помощью решета Эратосфена.

Реализовать алгоритм решета Эратосфена с помощью организации работы с множествами.

Словесное описание алгоритма:

  1. Выделим из первых n натуральных чисел все простые числа (решето Эратосфена).
  2. Вначале формируем множество BeginSet, состоящее из всех целых чисел в диапазоне от 2 до n. Множество PrimerSet будет содержать искомые простые числа.
  3. Затем циклически повторим действия:
    1. взять из BeginSet первое входящее в него число next и поместить его в PrimerSet;
    2. удалить из BeginSet число next и все другие числа, кратные ему, т. е. 2* next, 3* next и т. д.

Цикл повторяется до тех пор, пока множество BeginSet не станет пустым. Программу нельзя использовать для произвольного n, т. к. в любом множестве не может быть больше 256 элементов. (Для расширения интервала простых чисел можно разбить одно большое множество на несколько маленьких, т. е. представить большое множество в виде массива малых множеств. Этот случай рассматривать не будем. Можно предложить наиболее заинтересованным учащимся самостоятельно рассмотреть этот вариант.)

Литература:

  1. Е.В. Андреева Методика обучения основам программирования на уроках информатики. Лекции 1-8. – М.: Педагогический университет «Первое сентября», 2006.
  2. В.А. Дагене, Г.К. Григас, А.Ф. Аугутис 100 задач по программированию. – М.: Просвещение, 1993. — 255 с.
  3. В.В. Фаронов Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М.: «Нолидж», 1999. — 616 с.

Зачем математики ищут простые числа с миллионами знаков?

Простые числа — это больше, чем числа, которые делятся на себя и на единицу. Это математическая загадка, которую математики пытаются разгадать с тех самых пор, когда Евклид доказал, что им нет конца. Проект Great Internet Mersenne Prime Search, перед которым стоит задача поиска большого числа простых чисел особо редкого вида, недавно открыл самое большое простое число, известное на сегодняшний день. В нем 23 249 425 цифр — это достаточно, чтобы заполнить книгу из 9000 страниц. Для сравнения: количество атомов во всей наблюдаемой Вселенной оценивается в число с не более чем сотней знаков.

Новое число, которое записывается как 2⁷⁷²³²⁹¹⁷-1 (два в 77 232 917-й степени минус один), было обнаружено волонтером, который посвятил 14 лет вычислительного времени этому поиску.

Возможно, вас удивит, зачем нам знать число, которое растягивается на 23 миллиона знаков? Ведь самые важные числа для нас — это те, которые мы используем для количественного описания нашего мира? Так, да не так. Нам нужно знать о свойствах различных чисел, чтобы не только развивать технологии, от которых мы зависим, но и сохранять их безопасность.

Безопасность простых чисел

Одно из самых распространенных применений простых чисел — система шифрования RSA. В 1978 году Рональд Ривести, Ади Шамир и Леонард Адлеман взяли за основу простейшие известные факты о числах и создали RSA. Разработанная ими система позволяла передавать информацию в зашифрованном виде — вроде номера кредитной карточке — и через Интернет.

Первым ингредиентом алгоритма стали два больших простых числа. Чем больше эти числа, тем безопаснее шифрование. Числа, которые используются для счета, один, два, три, четыре и так далее — известные также как натуральные числа — также чрезвычайно полезны для этого процесса. Но простые числа лежат в основе всех натуральных чисел и поэтому более важны.

Возьмем, к примеру, число 70. Оно делится на 2 и 35. Далее, 35 — произведение 5 и 7. 70 — это произведение трех меньших чисел: 2, 5 и 7. На этом все, потому что они уже не разбиваются. Мы нашли первичные компоненты, составляющие 70, осуществили его факторизацию.

Перемножение двух чисел, даже очень больших, — это утомительная, но простая задача. Факторизация же целого числа, с другой стороны, — это сложно, поэтому система RSA использует это преимущество.

Допустим, Алиса и Боб хотят секретно пообщаться в Интернете. Им нужна система шифрования. Если они сначала встретятся лично, они могут оговорить метод шифрования и дешифрования, который будет известен только им, но если же первый разговор состоится в онлайне, им придется сперва открыто обсудить систему шифрования — а это риск.

Однако если Алиса выберет два больших числа, рассчитает их произведение и сообщит об этом открыто, определить первоначальные простые числа будет очень сложно, потому что только она знает факторы.

Поэтому Алиса сообщает свое произведение Бобу, сохраняя в тайне факторы. Боб использует произведение для шифрования своего послания Алисе, которое можно расшифровать только при помощи известных ей факторов. Если Ева захочет подслушать, она никогда не сможет расшифровать сообщение Боба, если не заполучит факторы Алисы, а Алиса, конечно, будет против. Если Ева попытается разложить произведение — даже при помощи самого быстрого суперкомпьютера — у нее это не получится. Просто не существует такого алгоритма, который справился бы с этой задачей за время жизни Вселенной.

В поиске простых

Большие простые числа также используются в других криптосистемах. Чем быстрее компьютеры, тем больше числа, которые они могут взломать. Для современных приложений достаточно простых чисел, содержащих сотни цифр. Эти числа незначительны по сравнению с недавно обнаруженным гигантом. На самом деле новое простое число настолько большое, что в настоящее время ни один возможный технологический прогресс в скорости вычислений не может привести к необходимости использовать его для криптографической безопасности. Вполне вероятно, что даже риски, обусловленные появлением квантовых компьютеров, не потребуют использования таких монстров для безопасности.

Тем не менее не поиск более безопасных криптосистем и не улучшающиеся компьютеры стали причиной последнего открытия Мерсенна. Это математики одержимы поиском драгоценностей внутри сундука с надписью «простые числа». Эта жажда началась со счета «один, два, три…» и до сих пор ведет нас дальше. А то, что вместе с тем произошла революция в области Интернета, это случайность.

Известный британский математик Годфри Гарольд Харди сказал: «Чистая математика в целом значительно более полезна, чем применяется. Полезным ее делает техника, а математическая техника учится по большей части у чистой математики». Станут ли гигантские простые числа полезными, непонятно. Но поиск таких знаний утоляет интеллектуальную жажду человеческого рода, которая началась с евклидового доказательства бесконечности простых чисел.

Просеивание числового песка в поисках простых чисел

@ Программные руководства :: Система
* HDD Utility

Моделирование автомобиля с помощью NURMS [ наверх ]
Категория: Графика и дизайн :: 3d Studio Max
Автор(ы): wide
Данный урок написан с использованием 3dsmax, но может быть полезен для пользователей любой системы трехмерного моделирования, поддерживающей разбиение полигональных поверхностей (sudivision surfaces). При моделировании NURMS очень важно знать его базовые концепции. Если Вы достаточно хорошо знакомы с ними, можете пропустить этот раздел.

Демиурги II [ наверх ]
Категория: Игры :: RPG
Автор(ы): HF
В две тысячи первом году, после выпуска сверхпопулярных отечественных игровых ролевых проектов «Аллоды» и «Проклятые Земли», один из ведущих российских разработчиков — компания «Nival Interactive» — выпускает игру «Демиурги» — походовую стратегию в магическом мире Эфира. На Западе игра издавалась под названием «Etherlords» (Лорды Эфира). Основное отличие игры от ее, в общем-то, многочисленных собратьев заключалось в том, что стратегия, помимо традиционной связи с ролевой игрой, заключила плодотворный союз с настольными карточными играми.

Battle Engine Aquila [ наверх ]
Категория: Игры :: Шутер
Автор(ы): Епишин Роман
Переносить исконно консольный проект на ПК — дело, как известно, рискованное. Ведь даже в огороды хитовых игр летят камешки (а порой целые булыжники) со стороны критиков.

Gigabyte GO-W0404A [ наверх ]
Категория: Компьютеры и железо :: DVD / CD-RW / CD-ROM
Автор(ы): Дмитрий Баронов
В результате успешно проведенных тестов, мультиформатный пишущий DVD-привод Gigabyte GO-W0404A по воле злого рока превратился в обычный пишущий CD-привод, не имеющий при этом никакого понятия о CD-RW.

Sven HR-970 [ наверх ]
Категория: Компьютеры и железо :: Аудиосистема
Автор(ы): Дмитий Мякин
Компания SVEN, впервые заявившая о себе на российском рынке как производитель недорогих, но качественных акустических систем для ПК, решила в свое время покорить «кинотеатральную» нишу, выпустив линейку недорогих AV-ресиверов.


VR-шлемы и системы стереовидения [ наверх ]
Категория: Компьютеры и железо :: Видеосистема
Автор(ы): Владимир Бодов
Сейчас определенно можно сказать, что будущее вывода визуальной информации для домашнего РС, портативных DVD-проигрывателей, игровых приставок, видео и телевидения — это VR-шлемы («виртуальные шлемы», «VR HMD»).

Gainward Powepack FX Ultra/1600 GS CoolFX на базе NVIDIA GeForce FX 5900 Ultra [ наверх ]
Категория: Компьютеры и железо :: Видеосистема
Автор(ы): Андрей Воробьев, Иван Притула
Ох. Просто нет слов, как выразить усталость, что накопилась у тестеров из-за этой перенасыщенности рынка. Раньше High-End продукты выходили реже, можно было спокойно и по очереди рассматривать модели, затем их модификации, улучшения. Но что теперь? ATI Technologies выпустила более года назад RADEON 9700 PRO, который был очень популярен и по сути насытил рынок DirectX 9.0 мощнейным устройством. Дальнейшие, так сказать, инкарнации, в виде RADEON 9800 PRO, RADEON 9800 уже не столь популярны, ибо это всего лишь некоторый разгон по частотам и все. Впереди R360, который будет таким же разгоном уже RADEON 9800 PRO.

Обзор видеокарт PowerColor RADEON 9600 PRO EZ 256MB, PowerColor RADEON 9200SE 128MB, PowerColor RADEON 7000 64MB [ наверх ]
Категория: Компьютеры и железо :: Видеосистема
Автор(ы): Андрей Воробьев
Еще летом компания ATI приняла решение активизировать натиск на low-end сегмент рынка, и в свет вышел самый дешевый из ныне выпускаемых продуктов на базе RADEON — RADEON 9200SE. Разумеется, есть еще RADEON 7000 (бывший VE), но чипы давно не выпускаются, а если кто еще такие карты и производит, то это из остатков складских запасов либо чипы берутся на «сером» рынке. Кстати, сегодня пойдет речь в том числе и о такой карте. Итак, вернемся к RADEON 9200SE. Это до предела заторможенная видеокарта на основе RADEON 9200, где частота ядра снижена с 250 до 200 МГц, а ширина шины памяти составляет 64бит, хоть память и DDR. Плюс частота работы памяти также снижена с 200 (400) до 166 (333) МГц.

Технические характеристики современных видеокарт на чипах NVIDIA [ наверх ]
Категория: Компьютеры и железо :: Видеосистема
Автор(ы): Doors4ever
Кто из вас способен сразу, навскидку, не задумываясь, сказать мне стандартные частоты видеокарты NVIDIA GeForce 4 MX 440SE? А GeForce 4 Ti 4200? А если у неё не 64, а 128 МБ памяти? Регулярно возникает необходимость уточнить номинальные характеристики карточек, но где их найти? Данные в чужих обзорах слишком ненадёжны. Конечно, лучше всего наводить справки у производителя, но там нас встречает абракадабра в виде пропускной способности памяти в ГБ/сек или Fill Rate, измеряемый в миллионах текселов в секунду . Как разобраться в этих цифрах и перевести их в понятные каждому МГц?

Обзор линейки видеокарт ASUS на базе GPU NVIDIA GeForce FX 5200, 5600 и 5800 [ наверх ]
Категория: Компьютеры и железо :: Видеосистема
Автор(ы): Бурдыко Алексей
Платы на базе семейства GPU от NVIDIA GeForce FX становятся все более доступными нашему рынку. Мы уже рассматривали изделия многих разработчиков видеокарт и сегодня продолжим серию обзоров по линейке видеокарт, построенных на новейших GPU от NVIDIA.

Intel Developer Forum 2003 Fall [ наверх ]
Категория: Компьютеры и железо :: Выставки
Автор(ы): Виктор Рудометов
Форум IDF (далее Форум Intel) проводится несколько раз в год в ведущих странах мира. Он является крупнейшим мероприятием для разработчиков аппаратных средств и программного обеспечения. Форум Intel стал уже, в некотором смысле, необходимым этапом развития отрасли высоких технологий. Большинство новационных технологий, практически все продукты будущего анонсируются именно здесь. Крупнейшими специалистами отрасли затрагиваются перспективные направления, а также анализируются возможности существующих и будущих направлений.

Илон Маск рекомендует:  Iis список свойств для ведения журналов

IDF Fall 2003, ключевые доклады первого дня [ наверх ]
Категория: Компьютеры и железо :: Выставки
Автор(ы): Виктор Рудометов
16 сентября 2003 года в Сан-Хосе (Калифорния, США) начал работу Intel Developer Forum (IDF) — крупнейший международный форум разработчиков аппаратного и программного обеспечения. Уже с первых часов форума было сделано сразу несколько анонсов новых продуктов и технологий.

IDF Fall 2003, часть 2: жаркая осень в Кремниевой долине, преддверие [ наверх ]
Категория: Компьютеры и железо :: Выставки
Автор(ы): iXBT.com
Понедельник 15 сентября для журналистов, съехавшихся в Сан-Хосе освещать IDF, вопреки поговорке, оказался днем относительно легким и событиями не перегруженным. После привычной процедуры регистрации состоялась единственная в этот день пресс-конференция. Впрочем, стоит отметить, что она была довольно-таки продолжительной и состояла из двух обширных докладов и сессии вопросов и ответов с Пэтом Гелсингером, старшим вице-президентом и директором по технологиям Intel.

IDF Fall 2003, часть 3: жаркая осень в Кремниевой долине, открытие [ наверх ]
Категория: Компьютеры и железо :: Выставки
Автор(ы): Дмитрий Коростелев
Утром во вторник 16 сентября Can Jose Convention Center распахнул свои двери всем, стремящимся на IDF: инженерам, бизнесменам, журналистам, всем, кого связывают общие интересы . передовые информационные технологии. В вестибюлях было многолюдно еще задолго до начала первого ключевого доклада, а когда распахнулись двери огромного конференц-зала, туда устремились потоки людей, стремящихся занять места, максимально удобные для съемки и записи происходящего на сцене.

ABIT IC7-MAX3 на чипсете Intel 875P Canterwood [ наверх ]
Категория: Компьютеры и железо :: Материнские платы
Автор(ы): Starter
Плата ABIT IC7-MAX3 — уникальный и скорее имиджевый продукт. Совсем недавно мы держали в руках технический сэмпл этой платы, и теперь просто горим желанием опробовать ее в деле :).

Обзор материнской платы ABIT IC7-MAX3 на базе чипсета Intel 875P [ наверх ]
Категория: Компьютеры и железо :: Материнские платы
Автор(ы): Gavric
Казалось бы, новые наборы логики от Intel, снабженные двухканальным контроллером памяти, появились совсем недавно. Однако, для рынка материнских плат те несколько месяцев, которые прошли с момента анонса наборов логики i865 и i875, оказались не таким уж и маленьким сроком. С середины апреля все ведущие производители освоили новые чипсеты и выпустили по несколько моделей своих материнских плат, на них основанных. Более того, в настоящее время мы становимся свидетелями появления второго поколения материнских плат с чипсетами i875 и i865. Одним из ярких представителей этого нового поколения является материнская плата ABIT IC7-MAX3.

CompactFlash Transcend Ultra 45x [ наверх ]
Категория: Компьютеры и железо :: Накопители
Автор(ы): Андрей Кожемяко
Еще когда я писал последнюю часть тестирования флэш-карт, было известно о том, что компания Transcend планирует выпуск новых карт CompactFlash на новом контроллере. Причина этого была понятна . фирма всегда ревностно относилась к скорости своих продуктов, не желая надолго уступать лидерство. Прошлым летом, когда я только начинал тестирование, карта Transcend Ultra 25x оказалась самой быстрой, однако конкуренты буквально наступали на пятки. Вскоре появились Apacer Photo Sceno Pro с еще большей скоростью чтения и, главное, записи. На это Transcend ответил выпуском Ultra 30x.

Турбореактивный кулер CoolerMaster JET 7 [ наверх ]
Категория: Компьютеры и железо :: Охлаждение
Автор(ы): LIKE OFF
Первый в мире кулер под Athlon XP, на котором установлена авиационная турбина. Вы всегда боялись того, что ваш компьютер взлетит? Теперь пристегните ремни — мы набираем высоту!

Подробный обзор блока питания Power Master JJ-350Т [ наверх ]
Категория: Компьютеры и железо :: Периферия
Автор(ы): [Viru$]
Ожидая подготовки своего заказа на одной из компьютерных фирм, я увидел, как человек заказывал компьютер на базе CPU Intel Pentium 2.66 (FSB 533), укомплектовав его 256 mb памяти PQI PC2700 и видеокартой Radeon 9000 128 mb. Уже сама покупка процессора на ядре NorhWood степпинга С1 и применение в этой конфигурации памяти PQI РС2700 выглядит по меньшей мере нелепо (учитывая идентичную стоимость CPU 2.66 и неплохо разгоняемого CPU 2.4C FSB 800 Hyper Threading), но ещё большей нелепостью был заказ дешевой материнской платы ECS, абсолютно не соответствующей ни процессору (учитывая ее стоимость), ни выбранной памяти (данная плата ECS P4iBM поддерживает лишь DDR266).

Переделать AMD Duron 1400 в полноценный Athlon XP очень просто [ наверх ]
Категория: Компьютеры и железо :: Процессоры
Автор(ы): StRunNic
Прошло несколько дней, и у меня созрел план действий по преобразованию AMD Duron 1400 в настоящий Athlon XP. Похоже, что AMD Duron 1400 упакованы по новой «безмостиковой» технологии. Если решить эту задачу сейчас, то в дальнейшем, при появлении процессоров на ядре Thorton, голову ломать не придётся. Мне всё-таки кажется, что, вряд ли для выпуска этих процов производитель будет придумывать новую упаковку. Скорее всего, это будут те же Barton, только с урезанным кешем. Причём, если резать его будут по старинке, то главное, найти способ восстановить кэш в полной мере.

«Мобильные часики» [ наверх ]
Категория: Мобильные устройства :: Другие устройства
Автор(ы): Алекс Степанчук
Гибридные устройства захватывают все новые рынки, а мечта любого инженера скрестить что-то с часами. Любопытно, но иногда такие устройства не только работают.

Обзор КПК NEC MobilePro 200E [ наверх ]
Категория: Мобильные устройства :: Карманные ПК
Автор(ы): Иван Мельничук
Наверное, самым «горячим» сегментом современного рынка КПК является класс бюджетных систем на базе Pocket PC 2002 стоимостью на мировом рынке до $300-350. Наличие модели этого класса стало практически обязательным для линеек всех производителей. Сегодня мы знакомимся с вариацией на эту тему от NEC . Mobile Pro 200E.

Обзор GSM-телефона Nokia 6650 [ наверх ]
Категория: Мобильные устройства :: Мобильные телефоны
Автор(ы): Эльдар Муртазин
Первый UMTS-аппарат от Nokia, который вызывает больше вопросов, чем дает ответов. Копия обычных телефонов на 40 платформе, почти полная, но все же иной аппарат.

Обзор телефона VK Mobile VG300 [ наверх ]
Категория: Мобильные устройства :: Мобильные телефоны
Автор(ы): Gnome
Долгое время я никак не мог себя заставить взять в руки и изучить хотя бы один аппарат от VK-Mobile. Причина (во всяком случае, явная) — не самое хорошее первое впечатление, которое оставил после себя первый телефончик от этой фирмы: внутри эта раскладушка выглядела гораздо менее привлекательно, нежели снаружи; кроме того, софт-клавиши и навигационная клавиша своей формой и расположением ненавязчиво напоминали голову и ушки Микии-Мауса, а всё вместе — какую-от игрушку. Однако, взяв в руки раскладушку VG300, я увидел, что никакими мышиными головами там и не пахнет, а внутренний вид телефона, напротив, гораздо лучше внешнего, что для пользователя, в конечном итоге, является более важным фактором: все-таки внутрь раскладушки он сам по делу смотрит гораздо чаще, чем снаружи. На этом аппарат и «сыграл». В результате — обзор. Тест, если будет нужен, появится позже, когда будет уже хорошая и готовая к использованию в России модель.

Bliss 5055 . ноутбук из серии «замена настольного ПК» [ наверх ]
Категория: Мобильные устройства :: Ноутбуки
Автор(ы): Николай Дорофеев
В последнее время заметное место в линейках различных производителей занимают ноутбуки серии Bliss 5055 . ноутбук из серии «замена настольного ПК». Поскольку построены они на базе десктопных процессоров и конфигурации более-менее стандартны, основным критерием при выборе модели является удобство эксплуатации, ну, и, естественно, дополнительные возможности, предоставляемые производителем (картоводы, устройства идентификации по отпечатку пальца и т.п.). В модели Bliss 5055 такой «фишкой» является встроенная видеокамера.

Тест двух 2 МП фотокамер Genius [ наверх ]
Категория: Мобильные устройства :: Цифровые фотокамеры
Автор(ы): Антон Поляков
Совсем недавно компания KYE Systems представила в России сразу три новинки среди цифровых фотокамер. С самой продвинутой моделью с 3,1 МП мы уже знакомились ранее. Теперь настал черед двух младших. Genius G-Shot P210 и Genius G-Shot D211.

Сетевой .шарик. [ наверх ]
Категория: Мобильные устройства :: Цифровые фотокамеры
Автор(ы): SilentMan
Как известно, небольшой девайс с миниатюрным объективом, традиционно располагающийся на мониторе компьютера и служащий исключительно для передачи изображения во Всемирную сеть (или просто в «локалку»), издавна получил название web-камеры. Кроме того, учитывая каждодневно возрастающие скорости приема/передачи данных даже по нашим, далеко не идеальным телефонным линиям (я уже не говорю про выделенные линии и «кабельный» Интернет), такая в прошлом «роскошь», как видеоконференции, стала доступна буквально любому владельцу компьютера. Однако «любому» часто не требуется навороченного гаджета с кучей возможностей, которые, к тому же, здорово добавляют в цене. Примером такого экономного решения и является обозреваемая в данной статье веб-камера от торговой марки Genius под названием VideoCAM Express.

ОС .Быть.. Дубль два [ наверх ]
Категория: Операционные системы :: Разное
Автор(ы): Поляков Александр
Откровенно говоря, читательская почта после статьи о BeOS (см. КГ Переполнение буфера [ наверх ]
Категория: Программирование :: Assembler
Автор(ы): Константин Третьяков
В данной статье рассматривается пример использования переполнения стека под Windows 9x на платформе Intel x86. Изложение рассчитано на читателя, понимающего принципы работы персонального компьютера и более чем поверхностно знакомого с программированием.

TClientSocket & TServerSocket [ наверх ]
Категория: Программирование :: C/C++
Автор(ы): Макагон Сергей
В C++Builder 6 для передачи какой-либо информации по сети удобнее всего использовать компоненты закладки Internet: TClientSocket и TServerSocket.

ISAPI / NSAPI [ наверх ]
Категория: Программирование :: Delphi
Автор(ы):
Итак, что такое CGI? Что это такое, документацию, статьи вы можете найти в интернете. Для платформы WIN32 существует три вида CGI интерфейса, поддерживаемых Delphi.

Delphi 6.0: Первая DLL [ наверх ]
Категория: Программирование :: Delphi
Автор(ы): Немиро Алексей
Пожалуй, самый простой способ обмена информацией между программами . это использование динамически подключаемых библиотек, т.е. DLL. В данной статье я расскажу о том как можно создать DLL и использовать ее средствами Delphi 6.0.

Изменить регистр? Легко! [ наверх ]
Категория: Программирование :: Delphi
Автор(ы): Сергей Каптарь
Статья о том, как в программе во всех TEdit организовать работу с диалогом для изменения регистра строковых полей (подобный диалог есть в MS Word); еще ее можно рассматривать как пример работы с сообщениями.

Лицо ABF software [ наверх ]
Категория: Программирование :: Delphi
Автор(ы): Андрей Голубовский
После отпуска DelphiPlus продолжает рубрику «Кто есть кто», в рамках которой знакомит Вас с интересными личностями, имеющими самое непосредственное отношение к миру Delphi (разработчиками компонент, создателями известных сайтов и т.п.). Вторым героем рубрики становится Антон Карпенко, руководитель фирмы ABF software, Inc.

Анимация — это несложно! [ наверх ]
Категория: Программирование :: Visual Basic
Автор(ы): Немиро Алексей
В последнее время мне много приходит писем с просьбами написать о работе с графикой средствами Visual Basic 6.0, и вот, наконец-таки я выделил денек на написание статьи на эту тему. Начать решил я с анимации, и в данной статье рассмотрены два способа ее создания. Способ первый до безумия прост, и дальше VB вам выходить не придется, способ второй тоже простой, но с использованием API. Ну вот..

Работа с TabStrip [ наверх ]
Категория: Программирование :: Visual Basic
Автор(ы): Немиро Алексей
Элемент управления TabStrip служит для отображения вкладок. Для добавления его в проект.

Просеивание числового песка в поисках простых чисел [ наверх ]
Категория: Программирование :: Алгоритмы
Автор(ы): А.К. Дьюдни
Возможно, из всех занимательных задач в теории чисел самая занимательная — это поиски простых чисел. Подобно золотым са-мородкам, они скрываются в остальных чисел. Напомним, что простое число — это то, которое не делится ни на какое другое, кроме 1 и на само себя. Такие числа редки. Правда, у самых истоков великой реки Континуума (множества всех чисел), пока числа еще невелики, они встречаются достаточно часто, но затем быстро растворяются в потоке, по мере того как величина чисел растет.

Ulead Smart Saver Pro [ наверх ]
Категория: Программные руководства :: Графика
Автор(ы): Юрий Сухов
Ulead Smart Saver Pro — программа, специально предназначенная для подготовки картинок к внедрению на WEB-страницы и адресованная в первую очередь WEB-мастерам и дизайнерам. Однако, оптимизатор, составляющий основу этой программы, вполне доступен для использования и неспециалистами. В следующей таблице приведены некоторые сведения об этой программе и ее ближайших аналогах.

Когда Color Pilot’а мало, а Photoshop’а много [ наверх ]
Категория: Программные руководства :: Графика
Автор(ы): Роберт Басыров
У многих владельцев цифровых фотоаппаратов часто возникает желание что-то подкорректировать в своих снимках: сначала просто исправить огрехи установки экспозиции, потом художественно обработать отснятый материал. Освоение профессиональных графических редакторов для реализации потребностей таких фотолюбителей не представляется целесообразным. Им нужно что-то попроще. Среди множества программ обработки графики есть немало решений для непрофессионалов, позволяющих после освоения несложной программы создавать свои достаточно интересные графические «аранжировки». Недавно появилась еще одна программа подобной направленности: AliveColors standalone — очень полезный и интересный продукт, позволяющий быстро и качественно внести изменения и добавить различные графические эффекты в цифровое изображение.

Жизнь . движение! [Часть 2] [ наверх ]
Категория: Программные руководства :: Графика
Автор(ы): Сергей БОНДАРЕНКО, Марина ДВОРАКОВСКАЯ
Используя описанные программы, легко создать простые объекты вроде штор, паруса или скатерти. Трудности начинаются, когда перед аниматором встает задача моделирования одежды для 3D-персонажей. Здесь на помощь придет фирма Digimation (www.digimation.com). Плагины этой фирмы широко используются как профессионалами, так и любителями. Один из ее продуктов под названием Stitch позволяет решить проблему создания элементов одежды в считанные минуты. Плагин состоит из двух модификаторов: GarmentMaker и Stitch.

HDD Utility [ наверх ]
Категория: Программные руководства :: Система
Автор(ы): Антон Клыга
Когда компьютеры еще только начинали становиться повседневной обыденностью, в ответ на появившуюся необходимость диагностики HDD появилась эта программа.


CD по полочкам [ наверх ]
Категория: Программные руководства :: Утилиты
Автор(ы): Роберт Басыров
До чего дошел прогресс! CD-диски стали по цене соотносимы с обычными 3,5-дюймовыми дискетами. Это значит, что все самое нужное — скачанные с Интернета программы, фотографии и видеозаписи, любимую музыку — теперь можно переписывать на «компакты», разгружая жесткие диски. На компактах можно хранить документацию, учебные материалы, результаты исследований, мемуары, в конце концов. Все бы хорошо, да вот возникает проблема поиска файла с нужной информацией среди сотен и сотен других аналогичных файлов. Эту проблему легко разрешить с помощью Disk-Pile от компании 10-Strike Software.

Большие диски . большие проблемы [ наверх ]
Категория: Программные руководства :: Утилиты
Автор(ы): Немиро Алексей
Совсем недавно мне приходилось умещать всю свою драгоценную информацию на 10 Гб диске. Многие усмехнутся и вспомнят времена, когда для жестких дисков1 Мб был предел, но это было в прошлом веке, а сейчас у нас на дворе, как ни как, 21 век. В силу своей деятельности, мне этих 10 Гб было очень даже мало, и мне пришлось разбить свою свинью-копилку. Из однокопеечных монеток я насобирал 120 американ..

Адаптеры D-Link DWL-G520 и DWL-G650 [ наверх ]
Категория: Компьютеры и железо :: Сети
Автор(ы): Андрей Кожемяко
В прошлый раз мы рассмотрели USB-адаптеры для работы в беспроводной сети стандарта 802.11b. Легко подключаемые, в меру быстрые . отличное решение для многих случаев. Сегодня же мы займемся несколько иным оборудованием, уже неспособным обойтись USB по причине заметно более высокой скорости работы, однако при этом вполне совместимым и с 802.11b. Да . речь пойдет именно о новейшей модификации стандарта, а именно 802.11g. Но для начала вообще разберемся . кому и зачем он нужен.

Обзор barebone-системы Soltek Qbic EQ3701M [ наверх ]
Категория: Компьютеры и железо :: Компьютеры
Автор(ы): Сергей Бучин
Все рассмотренные нами ранее barebone-системы были, конечно, разными, но почти у всех (исключая только платформы VIA EPIA) была одна общая черта: процессорный разъем Socket 478 и, соответственно, поддержка процессоров Pentium 4. Barebone-системы на процессорах AMD Athlon нам еще не попадались. Конечно, их меньше, и встречаются они реже, но это совершенно не значит, что они хуже и заслуживают меньшего внимания со стороны пользователей. Более того, кое-где системы на Athlon опережают конкурентов на P4. Ниже мы попробуем разобраться, где именно.

Подсвечиваем колонки [ наверх ]
Категория: Компьютеры и железо :: Моддинг
Автор(ы): Smallll
Я придумал этот мод, когда, сидя перед компьютером, думал, что ещё можно подсветить. Мод этот довольно простой. Применить его можно к любым колонкам или сабвуферу, но желательно, чтобы в нем (них) уже имелся светодиод (любой, главное, чтобы светился), тогда на мод уйдёт не более часа. Я на первую колонку потратил минут 30, на вторую . 10.

Тестовый блок питания [ наверх ]
Категория: Компьютеры и железо :: Моддинг
Автор(ы): LeadProg
По мере моего увлечения моддингом и сборки дополнительных устройств для моего ПК, я стал ощущать необходимость в блоке питания для тестирования всяких моих разработок. К своему компу подключать было жалко (кабы не накрыть чего.), да и неудобно. Посему, я решил сделать БП специально для тестирования.

В колонках слушаем, в системнике смотрим. [ наверх ]
Категория: Компьютеры и железо :: Моддинг
Автор(ы): SilentMan
Сегодня я хочу показать вам достаточно сложный в исполнении, но очень эффектный при наблюдении мод, для которого вам понадобятся очень ровные руки, навыки тонкой пайки, а также немалая смелость, ибо подключать «самопал» не в какой-нибудь банальный MOLEX-разъем, а в параллельный порт компьютера все-таки весьма рискованно.

Бытовой DVD-плеер NAD T512 со встроенными DD5.1/DTS-декодерами и поддержкой MP3 [ наверх ]
Категория: Компьютеры и железо :: Домашние кинотеатры
Автор(ы): Александр Данилин
Основанная в 1972 году компания NAD Electronics International входит в концерн The Lenbrook Group, который можно смело назвать транснациональным: штаб-квартира расположена в Канаде неподалёку от Торонто, головные офисы . в Канаде, США, Великобритании, центр контроля качества, снабжения и инженерный центр . Гонг Конг, Азиатский и Европейскией центры по продаже . в Сингапуре и Голландии. Так что сказать «NAD . это известная английская компания», как это можно иногда услышать, будет не очень корректно, хотя в Англии и есть такая компания. Лучше выразится по-другому. Например так: «продукция под торговой маркой NAD заслуженно пользуется любовью и популярностью у аудиофилов». По данным компании на 2003 год в 67 странах мира продано 1 850 000 усилителей NAD 3020/320. Бизнес-модель компании строится на трёх основных понятиях: высокие эксплуатационные качества, разумная стоимость и простота использования.

Илон Маск рекомендует:  Excel vba запуск excel с поиском ячейки

Алгоритм нахождения простых чисел Pascal

Задача: найти все простые числа, не превышающие заданного. Ниже код. Не могли бы вы проверить нет ли там ошибки. Я не совсем уверен что он работает корректно. Буду благодарен.

4 ответа 4

Вот, посмотрите. Что-то вроде такого должно быть.

Иногда бывает гораздо проще код просто переписать. Тогда повысится его читабельность.

Зачем Вы используете цикл while когда здесь нужен for , я не понял. Ну и как правильно заметили, проверять делимость нужно не до самого числа, а до его квадратного корня.

Вы можете проверить свою программу на наличие ошибок в автоматизированной системе. Например, здесь. Правда, ввод/вывод программы понадобится адаптировать для тестирующей системы, но это просто.

Можно воспользоваться идеями Сундарама, суть которых проста и логична.

  1. Просеивать только нечётные числа. Т.е. элемент решета a[m] должен содержать число m и соответствовать числу 2m+1 .
  2. Исключить из массива все числа вида i+j+2ij, поскольку 2(i+j+2ij)+1 = (2i+1)(2j+1) .
    Этого достаточно, поскольку все составные нечётные числа являются произведением нечётных чисел.
  3. Границы по меньшему индексу i определяются условием (2i+1) 2 ∈ [3, 2M+1], где M — размерность массива a .
    Т.е. i ∈ [1, sqrt(2M+1) / 2 -1 ]
  4. Границы по большему индексу j определяются условием i+j+2ij ∈ [1, M].
    Т.е. j ∈ [1, (M-i) / (2i+1)].
  5. Перебор по i и j проводится с шагом 1.
  6. Значения m , полученные в результате отбора, следует пересчитать в простые числа по формуле p=2m+1.

Загадка распределения простых чисел

Одна из величайших загадок математики ? существует ли упорядоченная структура в распределении простых чисел? Ученые с помощью генерации числовых сетей пытаются определить связи между простыми и составными числами, надеясь пролить свет на эту тайну.

Простыми, как известно, называются целые положительные (натуральные) числа, которые имеют лишь два натуральных делителя: единицу и само число. Фактически они являются строительными блоками для всех составных чисел ? произведений простых.

Список первых простых чисел ? до 300:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293

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

Мариан Богунья и ее коллеги из Барселонского университета решили разгадать тайну распределения простых чисел с помощью сетей.

Они создали компьютерную программу, которая произвела сетевую структуру, связавшую простые числа от 2 до миллиарда со всеми их произведениями ? составными числами.

Им также удалось разработать серию схожих числовых сетей, используя простые правила объединения чисел. Математиков интересовало, смогут ли они таким образом нащупать структуру, похожую на распределение простых чисел среди всех натуральных.

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

В своей предыдущей работе исследователям удалось найти способ приблизительной оценки количества простых чисел до определенного граничного значения. В дальнейшем группа Марион Богунья рассчитывает еще больше приблизиться к сетевой структуре простых чисел, применяя новые правила построения сетей.

До сих пор проверка различных теорий о простых числах наталкивалась на большие трудности, поскольку не существовало методик построения подобных структур.

Ученые рассчитывают, что продолжение их исследований поможет также пролить свет на знаменитую гипотезу Римана:

Все нетривиальные нули дзета-функции имеют действительную часть, равную 1/2.

Гипотеза Римана входит в список семи «проблем тысячелетия», за решение каждой из которых Математический институт Клэя выплатит награду в один миллион американских долларов.

Алгоритм нахождения простых чисел (стр. 1 из 2)

Индийские математики нашли уникальный алгоритм поиска простых чисел


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

Простые числа — это ключ к разрешению многих математических проблем, они также играют большую роль в криптографии (шифровании), благодаря чему интересуют не только математиков, но и военных, разведку и контрразведку. Простое число — то, которое делится без остатка только на единицу и на само себя. Так, к простым числам относятся 2, 3, 5, 7, 11, 13 и так далее по возрастающей.

Первым проблему определения простых чисел поставил древнегреческий ученый Эратосфен примерно в 220 году до нашей эры, предложив один из путей определения простых чисел. С тех пор ученые постепенно продвигались вперед, а в последние десятилетия им на помощь в проверке делимости огромных чисел пришли компьютеры. Математики, а позже и специалисты по компьютерному программированию разработали много способов решения этой проблемы, однако все они несут небольшую потенциальную возможность ошибки.

«Наш алгоритм исключает вероятность любой ошибки», — заявил основной разработчик нового метода Маниндра Агравал. Результаты вычислений уже разосланы ведущим компьютерным специалистам и математикам во всем мире. Ученые еже получили несколько отзывов. Никто не высказывает сомнений в новом алгоритме, и все выражают удовлетворение достигнутым результатом, сообщает NTVRU.com.

Эратосфен Киренский (276 год до н.э -194 год до н.э.) – греческий математик, астроном, географ и поэт. Ученик Каллимаха, с 235 год до н.э. – глава Александрийской библиотеки.

Эратосфен-Сын Эглаоса, уроженец Кирены.

Начальное образование Эратосфен получил в Александрии под руководством своего учёного земляка Каллимаха. Другим учителем Эратосфена в Александрии был философ Лизний. Перебравшись затем в Афины, он так тесно сблизился со школой Платона, что обыкновенно называл себя платоником. Результатом изучения наук в этих двух центрах была энциклопедическая эрудиция Эратосфена; кроме сочинений по математическим наукам, он писал ещё трактаты «О добре и зле», о комедии и др. Из всех своих сочинений Эратосфен придавал особенное значение чисто литературным и грамматическим, как это можно заключить из того, что он любил называть себя филологом.

Царь Птолемей III Эвергет после смерти Каллимаха вызвал Эратосфена из Афин и поручил ему заведование Александрийской библиотекой. Удаленный в старости от этой должности, Эратосфен впал в крайнюю нищету и, страдая болезнью глаз или даже совсем ослепнув, уморил себя голодом

Отголоски призвания обширной учёности Эратосфена звучат и в прозвищах, которые он получил от современников. Называя его «бета», они, по предположению многих исследователей, желали выразить свой взгляд на него, как на второго Платона, или вообще как на учёного, который только потому занимает второе место, что первое должно быть удержано за предками. Другим прозвищем Эратосфена было «пентатл»-пятиборец.

В честь Эратосфена назван кратер на Луне.

Решето Эратосфена-алгоритм нахождения всех простых чисел до некоторого целого числа n, который приписывают древнегреческому математику Эратосфену Киренскому

Для нахождения всех простых чисел не больше заданного числа n, следуя методу Эратосфена, нужно выполнить следующие шаги:

1) Выписать подряд все целые числа от 2 до n (2,3,4…,n)

2) Пусть переменная p изначально равна 2-первому простому числу.

3) Вычеркнуть из списка все числа от 2p до n, делящиеся на p (то есть, числа 2p,3p,4p,… .)

4) Найти первое невычеркнутое число, большее, чем р, и присвоить значению переменной p это число.

5) Повторять шаги 3 и 4 до тех пор, пока p не станет больше, чем n.

6) Все невычеркнутые числа в списке — простые числа.

На практике, алгоритм можно немного улучшить следующим образом. На шаге №3, числа можно вычеркивать, начиная сразу с числа p 2 , потому что все составные числа меньше его уже будут вычеркнуты к этому времени. И, соответственно, останавливать алгоритм можно, когда p 2 станет больше, чем n.

Число делится на 2 тогда и только тогда когда оно заканчивается чётной цифрой или нулём.

Число делится на 3, когда сумма цифр числа делится на 3.

Число делится на 4 тогда и только тогда, когда число из двух его последних цифр (оно может быть двузначным, однозначным или нулём) делится на 4.

Чтобы узнать, делится ли двузначное число на 4, можно половину единиц прибавить к десяткам — если сумма делится на 2, значит, число делится на 4.

Например, 92: 9+1=10, значит, 92 делится на 4.

Число делится на 5, когда оно заканчивается на 0 или 5.

Число делится на 6 тогда и только тогда, когда оно делится и на 2, и на 3.

Число делится на 7 когда результат вычитания удвоенной последней цифры, из этого числа без последней цифры делится на 7.

Например, 343:34-3*2=28 делится на 7, значит и число 343 делится на 7.

Число делится на 8 когда 3 его последние цифры – нули, или образуют число которое делится на 8.

Чтобы узнать, делится ли 3-значное число на 8, можно половину единиц прибавить к десяткам. У получившегося числа так же – половину единиц прибавить к десяткам. Если итоговая сумма делится на 2, значит, число делится на 8.

Например, 984:98+2=100=10+0=10 делится на 2, значит и число 984 делится на 8.

Число делится на 9, когда сумма цифр числа делится на 9.

Число делится на 10, когда оно заканчивается 0.

Число делится на 11, когда сумма цифр, с чередующимися знаками делится на 11.


Например, 271436 делится на 11, так как 6 — 3 + 4 — 1 + 7 — 2 = 11 делится на 11.

Число делится на 12, когда оно делится и на 3, и на 4.

Число делится на 13, когда число его десятков, сложенное с учетверённым числом единиц, кратно 13 (например, 845 делится на 13, так как 84+(4*5)=104 делится на 13).

Число делится на 14, когда оно делится и на 2, и на 7.

Число делится на 15, когда оно делится и на 3, и на 5.

Число делится на 17, когда число его десятков, сложенное с увеличенным в 12 раз числом единиц, кратно17.

Например,29053=2905+36=2941=294+12=306=30+72=102=10+24=34. Поскольку, 34 делится на 17, то и 29053 делится на 17.

Признак не всегда удобен, но имеет определённое значение в математике. Есть способ немного проще — число делится на 17, когда разность между число его десятков и упятерённым числом единиц кратна 17.

Число делится на 19, когда число его десятков, сложенное с удвоенным числом единиц, кратно 19.

Например, 646 делится на 19, так как 64+(6*2)=76 делится на 19.

Число делится на 23, когда число его сотен, сложенное с утроенным числом десятков и единиц, кратно 23.

Например, 28842 делится на 23, так как 288+(3*42)=414; продолжаем: 4+(3*14)=46- очевидно, делится на 23.

Число делится на 25, когда число, образованное его последними двумя цифрами делится на 25 (то есть последние две цифры образуют 00,25,50,75).

Разобьём число на группы по 2 цифры справа налево (в самой левой группе может быть одна цифра) и найдём сумму этих групп, считая их двузначными числами. Эта сумма делится на 99 тогда и только тогда, когда само число делится на 99.

Число делится на 100, когда оно заканчивается двумя нулями.

Разобьём число на группы по 2 цифры справа налево (в самой левой группе может быть одна цифра) и найдём сумму этих групп с переменными знаками, считая их двузначными числами. Эта сумма делится на 101, когда само число делится на 101.

Например, 590547 делится на 101, так как 59-05+47=101 делится на 101.

В некотором царстве, в некотором государстве жила принцесса. И однажды ей захотелось узнать ответ на свой вопрос о соседнем королевстве. В соседнем королевстве было 12 фей. За ночь всем феям надо было выполнить одинаковое количество желаний. Всего им надо было выполнить 144 желания. И принцессе захотелось узнать, сколько желаний должна выполнить одна фея за ночь. Но чтобы узнать ответ на вопрос, принцессе надо было слетать в соседнее королевство и спросить у фей. Долететь до королевства принцесса поручила дракону и дала ему на всю дорогу 6 часов. Расстояние до королевства 448,8 км. С какой скоростью должен лететь дракон, чтобы успеть слетать и туда, и обратно?

1) 6:2=3 (часа)- за такое время дракон должен слетать туда или обратно.

2) 448,8:3=149,6 (км/ч)- с такой скоростью должен лететь дракон, что прилететь в своё королевство вовремя.

( Задачу придумала Сторожева Яна).

Дракону надо лететь со скоростью 149,6 км/ч, что прилететь в своё королевство вовремя.

Тем времен дракон прилетел в соседнее королевство. Решение вопроса принцессы оказалось очень простым:

1) 144:12=12(желаний)- должна выполнить 1 фея за ночь.

( Задачу придумала Бордюгова Анастасия).

1 фея должна выполнить 12 желаний за ночь.

Дракон прилетел обратно и получил за ответ на вопрос принцессы вознаграждение: 1,2 кг мороженого. Он решил поделиться мороженым с друзьями. Друзей у него было 7. Сколько мороженого досталось каждому другу и самому дракону?

1) 7+1=8- друзья и сам дракон.

2) 1,2:8=0,15(кг)- досталось каждому другу и самому дракону.

( Задачу придумала Хисемятдинова Нейля).

0,15 кг мороженого досталось каждому другу и самому дракону.

Принцесса решила позвать к себе на работу 7 гномов, чтобы они искали изумруды. И сказала им, что за неделю они должны найти 147 изумрудов. А сама принцесса решила узнать: сколько 7 гномов должны найти изумрудов за 1 день? Сколько 1 гном должен найти изумрудов за 1 день? Сколько 1 гном должен найти изумрудов за неделю?

Загадка распределения простых чисел

Одна из величайших загадок математики ? существует ли упорядоченная структура в распределении простых чисел? Ученые с помощью генерации числовых сетей пытаются определить связи между простыми и составными числами, надеясь пролить свет на эту тайну.

Простыми, как известно, называются целые положительные (натуральные) числа, которые имеют лишь два натуральных делителя: единицу и само число. Фактически они являются строительными блоками для всех составных чисел ? произведений простых.


Список первых простых чисел ? до 300:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293

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

Мариан Богунья и ее коллеги из Барселонского университета решили разгадать тайну распределения простых чисел с помощью сетей.

Они создали компьютерную программу, которая произвела сетевую структуру, связавшую простые числа от 2 до миллиарда со всеми их произведениями ? составными числами.

Им также удалось разработать серию схожих числовых сетей, используя простые правила объединения чисел. Математиков интересовало, смогут ли они таким образом нащупать структуру, похожую на распределение простых чисел среди всех натуральных.

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

В своей предыдущей работе исследователям удалось найти способ приблизительной оценки количества простых чисел до определенного граничного значения. В дальнейшем группа Марион Богунья рассчитывает еще больше приблизиться к сетевой структуре простых чисел, применяя новые правила построения сетей.

До сих пор проверка различных теорий о простых числах наталкивалась на большие трудности, поскольку не существовало методик построения подобных структур.

Ученые рассчитывают, что продолжение их исследований поможет также пролить свет на знаменитую гипотезу Римана:

Все нетривиальные нули дзета-функции имеют действительную часть, равную 1/2.

Гипотеза Римана входит в список семи «проблем тысячелетия», за решение каждой из которых Математический институт Клэя выплатит награду в один миллион американских долларов.

Просеивание числового песка в поисках простых чисел

Наиболее наивный подход к поиску простых чисел заключается в следующем. Будем брать по очереди натуральные числа n , начиная с двойки, и проверять их на простоту. Проверка на простоту заключается в следующем: перебирая числа k из диапазона от 2 до n − 1 , будем делить n на k с остатком. Если при каком-то k обнаружится нулевой остаток, значит, n делится на k нацело, и число n составное. Если же при делении обнаруживались только ненулевые остатки, значит, число простое; в этом случае выводим его на экран. Ясно, что, получив нулевой остаток (тем самым обнаружив, что n составное), следует отказаться от дальнейших проб на делимость.

Заметим, что все простые числа, за исключением двойки, нечётные. Если обработать особо случай n = 2 , то все последующие числа n можно перебирать с шагом 2 . Это даст приблизительно двукратное увеличение производительности программы.

Оптимизированный перебор делителей

Ещё одно улучшение возникает благодаря следующему утверждению: наименьший делитель составного числа n не превосходит n . Докажем это утверждение от противного. Пускай число k является наименьшим делителем n , причём k > n . Тогда n = k ⁢ l , где l ∈ ℕ , причём l ⩽ n , то есть l также является делителем числа n , кроме того, меньшим, чем k , а это противоречит предположению. Всё это означает, что, перебирая потенциальные делители, можно оборвать перебор, когда k достигнет n : если до этого момента делителей не найдено, то их нет вообще. Кстати, при проверке на простоту числа 11 это наблюдение позволяет сократить перебор более чем в три раза, а для числа 1111111111111111111 — более чем в 1054092553 раза (оба числа — простые).

Перебор с запоминанием найденных простых чисел

Существенно сократить перебор возможных делителей можно, пожертвовав памятью во время исполнения программы. В основе этой оптимизации лежит следующее утверждение: наименьший собственный делитель k составного числа n (то есть отличный от единицы и от самого n ) является простым. Докажите самостоятельно.

Поскольку при проверке числа n на простоту важен именно наименьший собственный делитель, делители следует искать среди простых чисел, перебирая их по порядку. Но где взять их список? Ответ прост: поскольку наша программа будет искать все простые числа по порядку, кроме вывода на экран будем добавлять их в список найденных простых. Для очередного n будем перебирать потенциальные делители только из этого списка, по-прежнему, вплоть до n .

Илон Маск рекомендует:  Что такое код asp disablesocketpooling

Издержкой этого подхода является необходимость держать в памяти растущий список найденных простых чисел. Однако объём требуемой для этого памяти будет невелик по сравнению с громадным выигрышем в быстродействии. Следующая таблица даёт представление об экономии при переборе и о затратах памяти:

n количество k ⩽ n количество простых k ⩽ n
10 3 1
100 10 4
1000 31 10
10000 100 25
100000 316 65
1000000 1000 168

Решето Эратосфена

Другой алгоритм поиска простых чисел приписывают древнегреческому учёному Эратосфену Киренскому (Έρατοσθένης).

Обратите внимание: количество зачёркиваний у составного числа — это количество простых делителей (без учёта кратности).

Колёсный метод

Трюк, упомянутый в разделе «Наивный перебор», позволяет вдвое сократить список кандидатов в простые числа — заведомо составными будут все чётные числа кроме двойки. Посмотрим, нельзя ли подобным образом учесть ещё несколько первых простых чисел, чтобы дополнительно уменьшить число кандидатов.

Чисел, делящихся на 2 — половина, а делящихся на 3 — треть. Значит, доля чисел, делящихся хотя бы на одно из этих чисел, равна 1 2 + 1 3 − 1 2 ⋅ 1 3 = 2 3 (вычитается доля чисел, делящихся и на 2 , и на 3 , иначе такие числа будут учтены дважды). Для интересной операции, которую мы только что выполнили над дробями 1 2 и 1 3 , введём обозначение: x ⊕ y = x + y − x ⁢ y .

Очевидно, операция ⊕ коммутативна: x ⊕ y = y ⊕ x . Кроме того, как нетрудно проверить, она ассоциативна: x ⊕ y ⊕ z = x ⊕ y ⊕ z .

Теперь ясно, что учёт следующего простого числа, пятёрки, увеличивает долю заведомо составных чисел (делящихся на 2 , 3 , 5 ) до 1 2 ⊕ 1 3 ⊕ 1 5 = 11 15 . Учёт семёрки даст 1 2 ⊕ 1 3 ⊕ 1 5 ⊕ 1 7 = 11 15 ⊕ 1 7 = 27 35 . Интересно выяснить, какую выгоду можно получить, учитывая следующие простые числа, и каковы будут издержки.

Мы вычислили «суммы» обратных величин для первых k простых чисел и свели результаты в таблицу:

k 1 2 ⊕ 1 3 ⊕ 1 5 ⊕ … ⊕ 1 p k
1 0,5000…
2 0,6667…
3 0,7333…
4 0,7714…
5 0,7922…
6 0,8082…
7 0,8195…
8 0,8290…
9 0,8364…
10 0,8421…

Числа в правой колонке таблицы растут, но всё медленней.

Список чисел от 1 до P k , взаимно простых с P k , назовём колесом, а сами такие числа — спицами в колесе. Теперь мы знаем, что любое из простых чисел либо одно из p 1 , p 2 , … , p k , либо содержится среди чисел вида s + n ⁢ P k , где s — спица. Все остальные натуральные числа, кроме единицы, заведомо составные, и их доля, как показывает таблица, довольно велика даже для небольших k .

Для проверки числа N на простоту следует прежде всего поискать N среди чисел p 1 , p 2 , … , p k . Если поиск не увенчался успехом, проверяем по очереди, не делится ли N на одно из p i . Если делится, число N — составное. Если же нет, ищем делители N среди спиц колеса s (пропустив, естественно, единицу), затем среди чисел вида s + P k , затем среди чисел вида s + 2 ⁢ P k , затем — s + 3 ⁢ P k , и так продолжаем до тех пор, пока квадрат очередного делителя не превысит N .


Построим колёса для первого одного простого числа, первых двух и первых трёх:

k колесо
1 1
2 1 , 5
3 1 , 7 , 11 , 13 , 17 , 19 , 23 , 29
4 1 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83 , 89 , 97 , 101 , 103 , 107 , 109 , 113 , 121 , 127 , 131 , 137 , 139 , 143 , 149 , 151 , 157 , 163 , 167 , 169 , 173 , 179 , 181 , 187 , 191 , 193 , 197 , 199 , 209

Возьмём для примера колесо, построенное для двух первых простых чисел — 2 и 3 . Проверяя на простоту число N при помощи такого колеса, убедившись, что N не двойка и не тройка, пытаемся делить это число сначала на 2 , 3 , а затем — на 5 , 7 , 11 , 13 , 17 , 19 , 23 , 25 , 29 , … , то есть на числа из арифметических прогрессий 1 + 6 ⁢ t и 5 + 6 ⁢ t , t = 0 1 2 3 … . При N = 661 имеет смысл остановиться на числе 25 , поскольку квадрат следующего в списке, 29 , уже больше 661 . Теперь можно заключить, что число 661 — простое.

Удобно изображать список возможных делителей в виде таблицы шириной P k (в нашем примере это 2 ⋅ 3 = 6 ): 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 … Серые числа заведомо составные. Среди цветных чисел также могут встретиться, хоть и редко, составные числа (синие) — мы помним, что колёсный метод исключает не все составные числа из рассмотрения.

Для проверки того же числа 661 на колесе, построенном для трёх первых простых чисел, нужно проверить его делимость сначала на 2 , 3 , 5 , затем — на 7 , 11 , 13 , 17 , 19 , 23 .

Есть соблазн использовать для построения колеса как можно больше первых простых чисел. Но не стоит этого делать. Выигрыш с добавлением очередного простого числа будет всё меньше и меньше, а количество спиц в k -ом колесе будет расти всё быстрее и быстрее. Можно показать, что количество спиц в k -ом колесе равно p 1 − 1 ⁢ p 2 − 1 ⁢ p 3 − 1 ⋅ … ⋅ p k − 1 . Эта последовательность выглядит так: 1 , 2 , 8 , 48 , 480 , 5760 , 92160 , 1658880 , … . Слишком большие колёса только замедлят выполнение программы, к тому же создание списка спиц потребует массу времени. Наши эксперименты показали, что оптимальное количество простых, используемых для построения колеса, равно четырём.

Ах, да. Почему метод называется колёсным? Возьмём колесо со спицами, пронумерованными от 1 до P k , и удалим спицы с номерами, не взаимно простыми с P k . Если прокатить такое колесо по прямой, отмечая следы концов уцелевших спиц, на прямой останутся отметки, принадлежащие арифметическим прогрессиям вида s + P k ⁢ t . Первые три колеса показаны на рисунке 14.1. «Колёса для проверки чисел на простоту». Следующее колесо уже в семь раз больше самого крупного из показанных, и мы решили воздержаться от его рисования.

Просеивание числового песка в поисках простых чисел

Интересно, а смогут ли читатели составить свой квадрат из цифр раз­мером 6×6, который содержал бы больше 170 простых чисел? Те, кто напишет и выполнит программы SLUICE1 и SLU1CE2, получат некото-

В МИРЕ НАУКИ-1988/№ 9

Рое преимущество перед остальными участниками этого конкурса. Ли под­сказывает, что по квадрату должны быть рассеяны цифры 1, 3, 7 и 9, по­скольку простые числа оканчиваются всегда на одну из этих цифр. С другой стороны, если составить квадрат только из этих цифр, он, как ни стран­но, окажется довольно бедным на простые числа. Разумно разбросав четные лнчнть взойти лучшее нечно, если оно содержит более 170 простых чисел).

МАЙСКОМ номере журнала мы говорили о домашней компью­терной лаборатории, в которой моде­лировались эффекты давления с по­мощью молекул газа, сталкивающих­ся со стенками замкнутого сосуда. Молекулы участвовали также в про­цессе цифровой диффузии, распро­страняясь от одного края сосуда к другому. Наконец, атомы опасного нестабильного вещества, названного мною гридием, были собраны в кри­тическую массу. Некоторые читатели построили свои собственные сосуды, содержащие газ под давлением, и свои диффузионные камеры, но боль­шинство, конечно, заинтересовались гридием. Со всей Северной Америки, а потом и из других частей света по­сыпались на мой стол доклады о «компьютерных взрывах».

Описав путь испускаемого при де­лении нейтрона линейным уравнени­ем, я тем самым неявно предполагал, что два нейтрона, удаляясь от рас­щепленного атома, должны двигать­ся в противоположных направлениях. Большинство читателей, однако, вы­брали лишь одно из этих направле­ний. Так пли иначе, расщепить все атомы плоской решетки размером Л X П оказалось весьма непросто.

Построив по результатам много­численных экспериментов диаграм­му, Р. Касл из Уэбстера (шт. Техас), установил, что в решетке размером 16 X 16 обычно реагирует 90% ато­мов. А когда размер решетки дости­гает 32, количество делящихся ато­мов достигает уже 99%. Р. Мартин, профессор философии Университета Далузн в Новой Скотни, пришел к следующим результатам: когда раз­мер решетки равен 19, реагирует 90% атомов, а при размере 39 количество прореагировавшего материала дости­гает уже 99%, Большинство других ядерных экспериментов дали резуль­таты, укладывающиеся в этот диапа­зон. Среди тех читателей, кто вос­пользовался моделью с двумя нейтро­нами, был, например, Р. Смит из Энн-Арбора (шт, Мичиган). Он при­шел к типичным результатам с мень­шей критической массой. Согласно его данным, в решетке 15 х 15 реаги­рует 98% атомов.

Наверное, немногим читателям удалось создать такую сложную и со­вершенную систему, какую представ­ляет собой программа SHAKEY, на­писанная Р. Мерянном из Нортэмп- тона (шт. Массачусетс), Программа SHAKEY не только управляется с очень большими решетками, но и с помощью многих приемов, позволя­ющих сэкономить время, работает

МАЕ на «вашингтонском небо­своде» расположение звезд, опре­деляющих судьбу науки, было небла­гоприятным. Стечение двух обсто­ятельств — закат власти нынешнего президента и полученное в декабре прошлого года согласие конгресса от­носительно ограничения бюджетных ассигнований на внутренние нужды в новом финансовом году — привело к тому, что нескольким проектам из об­ласти «большой науки» был нанесен серьезный улар на Капитолийском холме. Олин из подкомитетов палаты представителей проголосовал за то, чтобы отложить строительство всех новых об^ьектов, которое должно бы­ло начаться в 1989 г., в том числе сверхпроводящего суперколлайдсра SSC и фотонного излучателя «Advanced Photon Light Source», ко­торый стоит 456 млн. долл, и предна­значен для генерирования синхрот­ронного излучения в эксперименталь­ных исследованиях, связанных с раз­работкой новых материалов. Пред­ставленная сенатом предварительная структура бюджетных ассигнований была расценена некоторыми кон­грессменами и их советниками как симптом надвигающейся опасности; так, например, если она будет приня­та, придется прекратить все работы по строительству космической стан­ции. Предложения сената означают также, что Национальный научный фонд (ННФ), который финансирует многие гражданские исследования в области фундаментальных наук и бюджет которого администрация очень быстро. Домашний реактор SHAKEY позволяет экспериментиро­вать с различными интервалами в ре­шетке, а также отмечает каждый рас­пад звуковым сигналом, шелкая по­добно счетчику Гейгера. Меркин пи­шет, что готов с удовольствием поде­литься своей программой со всеми желаюшими.

Изображения взорвавшихся реше­ток, приведенные на рисунке вверху, были присланы Д, Фэксом из Питтс­бурга (шт. Пенсильвания) и П. Кей­ном из Шампейна (шт. Иллинойс).

Планировала удвоить в ближайшие пять лет, будет рад получить хоть какую-нибудь прибавку к ассигнова­ниям.

Научная о&цественность выражает свое недовольство. Руководители ис­следовательских лабораторий, вклю­чая Брукхейвенскую национальную лабораторию и Станфордскую лабо­раторию синхротронного излучения (СЛСИ), заявляют, что вследствие сокрашения бюджетных ассигнова­ний имеющееся у них научное обору­дование используется далеко не в пол­ной мере. Директор СЛСИ А. Бьенен — сток сказал, что у них имеется «уста­новка, которую они не могут исполь­зовать», хотя на ней можно было бы выполнять важные работы по проек­ту нового фотонного излучателя. А. Шрисхайм, руководитель Аргон — нской национальной лаборатории, ко­торая недавно была объявлена цент­ром по разработке новых высокотем­пературных сверхпроводников для промышленных целей, заявил, что дополнительные 2 млн. долл., выде­ленные в этом году на указанные ра­боты, «не покроют основного дефи­цита». Директор управления по об­служиванию обсерваторий при На­циональной организации радиоастро­номических обсерваторий Р. Хавлен считает, что недостаток средств по­родил ряд проблем в отношении ра­боты системы VLA (большой антен­ной решетки) в Нью-Мексико, «на­столько острых, что, по-видимому, придется отказаться от некоторых ас­трономических наблюдений».

Что же делать в такой ситуации? На ежегодном заседании Националь­ной академии наук ее президент Ф. Пресс, бывший советник по науке при президенте Дж. Картере, внес ра-

Просеивание числового песка в поисках простых чисел

Решетки простых чисе/) 6 ‘tt-brордонаЛи

На входе программа принимает число П, вводимое человеком с клави­атуры. Затем программа устанавли­вает у переменной/(действующей как флажок) значение I, Если / все еше равно 1, когда программа завершает свои вычисления, значит, число явля­ется простым. В тепе цикла много­кратно повторяется один условный оператор If. Индекс К пробегает зна­чения от 2 до и — 1. Для каждого зна­чения К программа выполняет деле­ние П/к, берет остаток от деления (rem) и запоминает его под именем tof. Чаше всего значение test оказыва­ется ненулевым, другими словами, К Не делит л без остатка. Но если хоть раз оно оказывается нулевым, про­грамма немедленно сбрасывает фла­жок /, записывая туда 0, и это значе­ние сохраняется вплоть до конца ци­кла, Если условие во втором операто­ре (/ удовлетворяется, программа пе­чатает «простое». Если же / было установлено в нуль где-то по ходу вы­полнения цикла, то программа хра­нит мрачное молчание.

Хотя описанная выше программа очень проста, она работает слишком медленно, особенно если заставить ее найти несколько простых чисел под­ряд. Для этого нужно лишь заменить первый оператор Inpui оператором цикла, таким, например, как «for л — •- 3 to 1000». А последний оператор в программе можно изменить так, что­бы вместо «простое» печаталось оче­редное значение П, успешно прошед­шее все проверки и ни разу не разде­лившееся без остатка. Мы увидим, как начнут появляться простые числа от 3 до 997, по одному и очень мед­ленно.

Однако работу программы SLUICE1 можно значительно уско­рить, если внести в нее кое-какие из­менения, Во-первых, не имеет никако­го смысла проверять, делится ли чис­ло П на К, если К больше квадратного корня из л, потому что по крайней ме-

Ре один делитель числа П, если он есть, не должен превосходить квад­ратного корня из «, а одного делителя уже достаточно, чтобы считать число составным. Существует также знаме­нитая арифметическая теорема, кото­рая гласит, что любое целое число можно представить в виде произведе­ния простых чисел, и это произведе­ние единственное. Число не является составным, если оно не делится ни на одно простое число, меньшее себя. С учетом обоих этих фактов цикл мож­но сделать значительно короче, выби­рая в качестве значений индекса К Только простые числа, не превосходя­щие по величине квадратного корня из П.

Новый алгоритм, который мы на­зовем SLUICE2, в достаточной мере отличается от своего незамысловато­го предшественника и выглядит сле­дующим образом:

For л — 3 to 1000

While F = 1 and P sqrt (« ) Test — rem [n/p (A )) if Test = 0 then/ — 0

If/ = 1 then r — г — I — 1

Поскольку программа SLUICE2 требует списка простых чисел, она за­поминает каждое новое простое чис­ло в специальном массиве/?. Перемен­ная К является индексом, указываю­щим на последний элемент Р. Таким образом, программа всегда знает, ку­да поместить следующее полученное ею простое число. В первой строке ал­горитма индексу присваивается значе­ние 1. В следующей строке в первый элемент массива простых чисел Р по­мешается число 2. Затем следует цикл, описанный выше. В нем прове­ряются все числа в диапазоне от 3 до 1000, Переменная К указывает, какой элемент массива Р используется в дан­ный момент для проверки я. Внутри этого основного цикла есть еще один цикл типа While — пока флажок / ра­вен 1 и очередное простое число из массива Р не превышает квадратного корня ИЗИ , внутренний цикл продол­жает проверки, выбирая последова­тельные значения К. При выходе из этого цикла флажок F может быть ра­вен либо I, либо 0. В первом случае это означает, что было найдено еше одно простое число. Программа до­бавляет его к уже существующему списку. Во втором случае в основном цикле просто произойдет переход к следующему значению Л1.

Читатели, которые пожелают вос­пользоваться этим вариантом про­граммы поиска простых чисел, могут выбрать один из двух способов выво­да найденных значений. Программа SLLIICE2 может распечатать весь массив Р по завершении главного ци­кла алгоритма. При этом вы как бы увидите полное решето самородков. Но, может быть, вам больше понра­вится наблюдать, как самородки по­являются по одному, как только они будут найдены. В таком случае сразу после оператора/? (г) — я нужно вста­вить оператор печати Print.

Возможно, предложенный диапа­зон поиска, от I до 1000, покажется читателям слишком маленьким. В принципе ничто не мешает увеличить верхний предел поисков до 100000 или даже до 1 000000. А может быть, что — то все-таки помешает? Это будет за­висеть от того, насколько большие массивы допускаются в том или ином компьютере. Размер основного мас­сива программы определяется коли­чеством простых чисел, которые должны быть найдены по ходу вы­полнения программы. Здесь нам при­годится формула, оценивающая коли­чество простых чисел. Согласно этой формуле, в диапазоне от 1 до 1 ОСЮ 000 содержится приблизительно 72 382 простых числа. Если память компью­тера имеет размер лишь 64 Кбайт, то он не справится с этой задачей.

Простым числам было посвящено множество занимательных матема­тических задач. Продолжая тему про­стых чисел в применении к квадрат­ным матрицам, рассмотрим две за­дачки. Первая из них была придумана Генри Эрнестом Дьюднн, известным английским специалистом по голово­ломкам. Наверное, многим читате­лям уже знакомы так называемые ма­гические квадраты — квадратные матрицы чисел, у которых суммиро­вание элементов по любой строке, любому столбцу и двум главным диа­гоналям дает одно и то же число. Су­ществуют ли магические квадраты, состоящие только из простых чисел; Оказывается, да. Магический квадрат размером 3×3, приведенный на с. 84, имеет сумму 111 (между прочим, тоже не простое число) вдоль каждой строки, ка? клого столбца н каждой главной диагонали. Рядом с этой мат­рицей 3 X 3 приведена матрица4 х 4. Известны магические квадраты и со стороной больше 4, Мы просим чита­телей, которым удастся самостоя­тельно открыть такие квадраты, при­слать нам свои результаты. Лучшие из них будут опубликованы в одной из наших следующих статей. Результат будет тем ценнее, чем больше размер квадрата, а при одинаковых размерах преимущество будут иметь квадраты с меньшими суммами.

Другую задачку предложил еще один неутомимый английский изо­бретатель головоломок Гордон Ли, автор рубрики «Победители и побеж­денные» в журнале «Dragon User». Он построил квадрат 6×6, со­стоящий из цифр, которые скрывают в себе великое множество простых чи­сел, а точнее говоря, 170 (см. правый рисунок на с. 84). Простые числа по диаграмме Ли можно строить из цифр любой строки, любого столбца и любой диагонали, просматривая их в произвольном направлении. Не­сколько полученных таким образом цифр могут составлять простое чис­ло, одно из 170, по подсчетам Ли. Все­го в решетке размером 6×6 содер­жится максимум 616 чисел (как про­стых, так и составных). Повторяю­щиеся простые числа считаются как одно число. В своих подсчетах Ли включил в список простых чисел и 1.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL