Алгоритмы нахождения простых чисел
Простые числа – это натуральные числа, большие единицы, которые имеют только два делителя: единицу и само это число.
Примеры простых чисел: 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?
Будем использовать следующие приемы оптимизации алгоритма:
- рассматривать только нечетные числа;
- использовать свойство: наименьшее число, на которое делится натуральное число n, не превышает целой части квадратного корня из числа n;
- прерывать работу цикла, реализующего поиск делителей числа, при нахождении первого же делителя с помощью процедуры 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 следующим образом: найденные простые числа записывать в файл, делимость очередного кандидата проверять только на числа из этого файла.
Словесное описание алгоритма:
- Вводим правую границу диапазона – m;
- Записываем двойку и тройку в файл;
- Пока очередное нечетное число i m ), вывести в файл количество простых чисел.
Эратосфеново решето
Греческий математик Эратосфен (275-194 гг. до н.э.) предложил интересный метод нахождения простых чисел в интервале [2; n]. Он написал на папирусе, натянутом на рамку, все числа от 2 до 10000 и прокалывал составные числа. Папирус стал, как решето, которое “просеивает” составные числа, а простые оставляет. Поэтому такой метод называется Эратосфеновым решетом. Рассмотрим подробнее этот метод.
Пусть написаны числа от 2 до n:
Первое неперечеркнутое число в строке является простым. Таким образом, 2 – простое число. Начинаем “просеивание” с него, перечеркивая все числа, которые делятся на 2:
Далее берем следующее по порядку неперечеркнутое число и перечеркиваем все числа, кратные ему и т. д. Таким образом, мы перечеркнем все составные числа, а простые останутся неперечеркнутыми:
Все числа указанного интервала можно рассматривать как множество и в дальнейшем из этого множества будем исключать (отсеивать) все составные числа.
Задача 6. Нахождение простых чисел с помощью решета Эратосфена.
Реализовать алгоритм решета Эратосфена с помощью организации работы с множествами.
Словесное описание алгоритма:
- Выделим из первых n натуральных чисел все простые числа (решето Эратосфена).
- Вначале формируем множество BeginSet, состоящее из всех целых чисел в диапазоне от 2 до n. Множество PrimerSet будет содержать искомые простые числа.
- Затем циклически повторим действия:
- взять из BeginSet первое входящее в него число next и поместить его в PrimerSet;
- удалить из BeginSet число next и все другие числа, кратные ему, т. е. 2* next, 3* next и т. д.
Цикл повторяется до тех пор, пока множество BeginSet не станет пустым. Программу нельзя использовать для произвольного n, т. к. в любом множестве не может быть больше 256 элементов. (Для расширения интервала простых чисел можно разбить одно большое множество на несколько маленьких, т. е. представить большое множество в виде массива малых множеств. Этот случай рассматривать не будем. Можно предложить наиболее заинтересованным учащимся самостоятельно рассмотреть этот вариант.)
Литература:
- Е.В. Андреева Методика обучения основам программирования на уроках информатики. Лекции 1-8. – М.: Педагогический университет «Первое сентября», 2006.
- В.А. Дагене, Г.К. Григас, А.Ф. Аугутис 100 задач по программированию. – М.: Просвещение, 1993. — 255 с.
- В.В. Фаронов Турбо Паскаль 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 стал уже, в некотором смысле, необходимым этапом развития отрасли высоких технологий. Большинство новационных технологий, практически все продукты будущего анонсируются именно здесь. Крупнейшими специалистами отрасли затрагиваются перспективные направления, а также анализируются возможности существующих и будущих направлений.
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. Бизнес-модель компании строится на трёх основных понятиях: высокие эксплуатационные качества, разумная стоимость и простота использования.
Алгоритм нахождения простых чисел Pascal
Задача: найти все простые числа, не превышающие заданного. Ниже код. Не могли бы вы проверить нет ли там ошибки. Я не совсем уверен что он работает корректно. Буду благодарен.
4 ответа 4
Вот, посмотрите. Что-то вроде такого должно быть.
Иногда бывает гораздо проще код просто переписать. Тогда повысится его читабельность.
Зачем Вы используете цикл while когда здесь нужен for , я не понял. Ну и как правильно заметили, проверять делимость нужно не до самого числа, а до его квадратного корня.
Вы можете проверить свою программу на наличие ошибок в автоматизированной системе. Например, здесь. Правда, ввод/вывод программы понадобится адаптировать для тестирующей системы, но это просто.
Можно воспользоваться идеями Сундарама, суть которых проста и логична.
- Просеивать только нечётные числа. Т.е. элемент решета a[m] должен содержать число m и соответствовать числу 2m+1 .
- Исключить из массива все числа вида i+j+2ij, поскольку 2(i+j+2ij)+1 = (2i+1)(2j+1) .
Этого достаточно, поскольку все составные нечётные числа являются произведением нечётных чисел. - Границы по меньшему индексу i определяются условием (2i+1) 2 ∈ [3, 2M+1], где M — размерность массива a .
Т.е. i ∈ [1, sqrt(2M+1) / 2 -1 ] - Границы по большему индексу j определяются условием i+j+2ij ∈ [1, M].
Т.е. j ∈ [1, (M-i) / (2i+1)]. - Перебор по i и j проводится с шагом 1.
- Значения 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 .
Издержкой этого подхода является необходимость держать в памяти растущий список найденных простых чисел. Однако объём требуемой для этого памяти будет невелик по сравнению с громадным выигрышем в быстродействии. Следующая таблица даёт представление об экономии при переборе и о затратах памяти:
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.