Книга: Рассказы о математике с примерами на языках Python и C
8. Магический квадрат из простых чисел
8. Магический квадрат из простых чисел
Существует еще одна разновидность магического квадрата — составленного из простых чисел. Пример такого квадрата показан на рисунке:
29 | 131 | 107 |
167 | 89 | 11 |
71 | 47 | 149 |
Приведенную выше программу легко модифицировать для такого расчета: достаточно лишь заменить множество digits = set(range(1, 16 + 1))
на другое, содержащее простые числа.
Для примера будем искать квадраты среди трехзначных простых чисел от 101 до 491. Заменим в предыдущей версии программы строку digits = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
на
primes = [ 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, 307, 311, 313, 317, 331, 337, 347, 349,
353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443,
449, 457, 461, 463, 467, 479, 487, 491 ]
digits = set(primes)
Таких квадратов нашлось 40, например:
233 | 167 | 389 |
419 | 263 | 107 |
137 | 359 | 293 |
Сумма чисел равна вполне красивому числу 789.
Т. к. число вариантов перебора больше, программа работает дольше. Время поиска составило 724 с для Python-версии и 316 c для программы на C++.
T = 316.00s = C++
T = 724.4s = Python
Если же рассматривать минимально возможный квадрат из простых чисел, то его сумма равняется тоже вполне «красивому» числу 111:
7 | 61 | 43 |
73 | 37 | 1 |
31 | 13 | 67 |
Примером квадрата 4х4 может быть квадрат с также «красивой» суммой 222:
97 | 41 | 73 | 11 |
17 | 47 | 83 | 75 |
59 | 79 | 13 | 71 |
49 | 55 | 53 | 65 |
- Введение
- 1. Основы языков Python и Си
- 2. Математические фокусы
- 3. Число Пи
- 4. Вычисление радиуса Земли
- 5. Простые числа
- 6. Совершенные числа
- 7. Магический квадрат
- 8. Магический квадрат из простых чисел
- 9. Числа Фибоначчи
- 10. Высота звуков нот
- 11. Вращение планет
- 12. Парадоксы теории вероятности
- 13. Поверхность Луны
- 14. Так ли случайны случайные числа?
- 15. Распределение случайных величин
- 16. Измерение скорости света
- 17. Можно ли своими глазами увидеть прошлое?
- 18. Сколько вольт в электросети?
- 19. Приложение 1 - Вычисления с помощью видеокарты
- 20. Приложение 2 - Быстродействие языка Python
- Заключение
- Содержание книги
- Популярные страницы
- Квадрат Эйлера
- 5.8. Магические квадраты
- Урок 1.6. Создание простых рисунков
- 5.3. Округление чисел с плавающей точкой
- Использование различных форматов чисел
- Создание простых запросов на выборку
- Создание простых форм
- 9. Оценка эффективности email-маркетинга Как повысить продажи с помощью простых инструментов
- ФУНКЦИЯ ПОЛУЧЕНИЯ ЦЕЛЫХ ЧИСЕЛ: getint( )
- Листинг А.4. (number.c) Арифметика унарных чисел
- 2.3. Представление чисел в компьютере
- 18.2.1. Получение истинно случайных чисел из Web