Реально сложная задачка
Помните двух программистов и их диалог про возраст сыновей? Они встретились снова! Вот их история.
Двоих программистов вывезли на кладбище бандиты из девяностых. Бандиты тайно выбрали 2 целых положительных числа, оба больше единицы, а их сумма меньше 100. Первому программисту бандит сказал произведение этих чисел, а второму — их сумму. После этого у программистов состоялся такой разговор.
Первый: Я понятия не имею, какая у тебя сумма.
Второй: Ха-ха, это для меня не новость! Я и так знал, что ты не знал этого.
Первый: Ага! Теперь я понял, чему равна твоя сумма!
Второй: Отлично — теперь и я тоже знаю твоё произведение!
Бандиты, конечно же, их отпустили. Потому что это загадка! А загадка в том, что это за числа и как программисты это выяснили.
В отличие от предыдущей задачи, здесь решение намного сложнее, потому что в голове нужно держать одновременно 2-3 условия, которыми надо проверять числа. Но мы справимся.
Для решения нам понадобится вспомнить, что такое простые числа и в чём их особенность. Простое число — то, которое может делиться нацело только на себя и на единицу. Например, число 5 — простое, потому что делится только на 5 и на 1. А число 6 — не простое, потому что кроме 6 и 1 оно ещё делится на 2 и 3 без остатка. Семь тоже будет простым числом, а восемь — нет, потому что кроме 8 и 1 оно делится также на 2 и 4.
Если перемножить два простых числа, то полученное произведение больше никак нельзя получить другим способом (кроме умножения этого же числа на единицу). Поясним на примере.
Возьмём два простых числа 5 и 7 и перемножим их — получится 35. Больше число 35 получить никак не получится, кроме как умножить 35 на 1. Это значит, что если произведение можно разложить на два простых множителя, то других вариантов разложения (кроме числа и единицы) у него не будет. Это нам пригодится при решении задач — и если число можно разложить на 2 простых, то и их сумму тоже легко сразу посчитать.
54 = 6 × 9, а это значит, что число 54 нельзя получить перемножением двух простых чисел и нельзя сразу сказать, чему однозначно равна сумма множителей.
Оба числа простые, поэтому произведение 21 можно получить только из них, а значит, легко посчитать сумму — она будет равна 3 + 7 = 10.
Теперь переведём их диалог на язык математики и логики и обозначим числа как n и m:
Первый: Я понял, что одно из чисел точно не простое, потому что иначе я сразу бы разложил число на произведение двух простых и легко получил сумму. А раз так, то это одно из чисел m или n можно получить перемножением двух других чисел. Поэтому общее произведение состоит не менее чем из трёх множителей, причём как минимум один из них отличается от остальных — поэтому получается несколько вариантов возможных сумм, и я не знаю, какая из них правильная (пометим это как Правило 1).
Второй: Сумму, которая у меня есть, нельзя получить из двух простых чисел, поэтому и твоё произведение тоже нельзя разложить на два простых множителя. Это значит, что у меня нечётная сумма, потому что, по гипотезе Гольдбаха, в нашем случае можно получить любое чётное число, сложив два простых. А раз это не два простых числа, значит, и сумма будет нечётная. А ещё эта сумма точно не равна сумме двух и простого числа, потому что два — тоже простое, ха! Поэтому есть несколько вариантов суммы m и n, которые подходят под твои условия, но я не могу пока определить, какие именно (пометим это как Правило 2).
Первый: Из всех множителей моего произведения я могу составить только один вариант пары, сумма которой подойдёт под твоё ограничение — не будет разбиваться на сумму двух простых или сумму чисел одного множителя (Правило 3).
Второй: Ах вот как! Из всех вариантов пар, на которые можно разбить сумму и подходящих под твои условия, есть только одна, которая позволила бы тебе определить это (Правило 4). Теперь и мне понятно, что это за числа!
Теперь подберём варианты суммы, которая была у второго. Ограничения такие:
- нечётная;
- не равна сумме двойки и простого числа.
1 — не подходит, потому что оба числа больше единицы.
2, 4, 6, 8… — нет, потому что чётные.
3 — нет, потому что это сумма двойки и простого числа.
5 — нет, по той же причине (2 + 3).
7 — тоже нет (2 + 5).
9 — тоже нет (2 + 7, а 7 — простое число).
11 — подходит.
13 — нет, потому что 13 = 2 + 11 (11 — простое число).
15 — нет, потому что 15 = 2 + 13 (13 — тоже простое число).
17 — подходит.
19 — нет, потому что 19 = 2 + 17 (17 — простое число).
Способ подбора суммы понятен, дальше можно продолжать по тому же алгоритму. Мы же выберем те, которые нам уже подошли, и на их примере покажем, что нужно делать дальше, чтобы получить правильный ответ. Наши числа, которые нам подходят уже сейчас: 11 и 17. Начнём с 11.
Сумма = 11.
Найдём все слагаемые, которые могут давать эту сумму:
Для каждого из них запишем произведение и проверим, выполняется ли Правило 3, которое сказал первый программист.
Смотрим на произведение 2 × 9 = 18 и как ещё его можно получить.
18 = 2 × 9 → Да (Правило 3 выполняется).
18 = 3 × 6 → Нет (Правило 3 не работает, потому что 3 + 6 = 9, а 9 можно получить из простых чисел 2 и 7).
Смотрим на произведение 3 × 8 = 24.
24 = 2 × 12 → Нет (чётная сумма, Правило 2 не работает).
24 = 3 × 8 → Да (выполняется Правило 3).
24 = 6 × 4 → Нет (чётная сумма).
Смотрим на произведение 4 × 7 = 28.
28 = 2 × 14 → Нет (чётная сумма).
28 = 4 × 7 → Да (выполняется Правило 3).
Смотрим на произведение 5 × 6 = 30.
30 = 2 × 15 → Да.
30 = 3 × 10 → Нет (Правило 3 не работает, потому что 3 + 10 = 13, а 13 можно получить суммой простых чисел 2 и 11).
30 = 5 × 6 → Да.
Тут мы вообще не можем выбрать одну пару, потому что Правило 3 выполняется 2 раза, а значит, этот вариант отбрасываем.
Получается, что для суммы 11 могут быть три варианта произведений, для которых выполняется Правило 3: 2 и 9, 3 и 8, 4 и 7. Но тогда Правило 4 не выполняется, потому что нужно, чтобы для одной суммы была только одна пара, которая подходит под правило 3. Продолжаем искать.
Сумма = 17.
Найдём все слагаемые, которые могут давать эту сумму:
Для каждого из них запишем произведение и проверим, выполняется ли Правило 3, которое сказал первый программист.
Смотрим на произведение 2 × 15 = 30 и как ещё его можно получить.
30 = 2 × 15 → Да.
30 = 3 × 10 → Нет (Правило 3 не работает, потому что 3 + 10 = 13, а 13 можно получить суммой простых чисел 2 и 11).
30 = 5 × 6 → Да.
Тут мы вообще не можем выбрать одну пару, потому что Правило 3 выполняется 2 раза, а значит, этот вариант отбрасываем.
Смотрим на произведение 3 × 14 = 42 и как ещё его можно получить:
42 = 2 × 21 → Да.
42 = 3 × 14 → Да.
Два раза выполняется Правило 3 — отбрасываем пару.
Смотрим на произведение 4 × 13 = 52 и как ещё его можно получить.
52 = 4 × 13 → Да.
Смотрим на произведение 5 × 12 = 60 и как ещё его можно получить.
60 = 3 × 20 → Да.
60 = 5 × 12 → Да.
Два раза выполняется Правило 3 — отбрасываем пару.
Смотрим на произведение 6 × 11 = 66 и как ещё его можно получить.
66 = 2 × 33 → Да.
66 = 6 × 11 → Да.
Два раза выполняется Правило 3 — отбрасываем пару.
Смотрим на произведение 7 × 10 = 70 и как ещё его можно получить.
70 = 2 × 35 → Да.
70 = 7 × 10 → Да.
Два раза выполняется Правило 3 — отбрасываем пару.
Смотрим на произведение 8 × 9 = 72 и как ещё его можно получить.
72 = 3 × 24 → Да.
72 = 8 × 9 → Да.
Два раза выполняется Правило 3 — отбрасываем пару.
Получается, что для суммы 17 может быть только один вариант произведения, для которого выполняется Правило 3: это 4 и 13. А значит, что Правило 4 тоже выполняется и мы нашли нужные числа!
Если вы дочитали досюда и всё поняли — снимаем шляпу. Вы не из тех, кого могут испугать вычисления и логический подход!
Крутая математика для крутых крутанов
Вы прочитали задачу с непростой математикой. Но это не предел: есть математика для аналитиков и дата-сайентистов, и там вообще космос.
Расчехляйте арифмометры и заходите в «Практикум» на продвинутую математику.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Базовая математика в JavaScript — числа и операторы
В этой части курса мы обсуждаем математику в JavaScript — как мы можем использовать operators (en-US) и другие функции, чтобы успешно манипулировать числами для выполнения наших задач.
| Необходимые условия: | Базовая компьютерная грамотность, базовое понимание HTML и CSS, понимание того, что такое JavaScript. |
|---|---|
| Цель: | Ознакомление с основами математики в JavaScript. |
Все любят математику
Хорошо, может быть, не все. Некоторые из нас любят математику, некоторые из нас ненавидели математику с тех пор, как мы изучали таблицу умножения в школе, а некоторые из нас находятся где-то между ними. Но никто из нас не может отрицать, что математика является фундаментальной частью жизни, и мы не можем обойтись без неё. Это особенно актуально, когда мы учимся программировать на JavaScript (или на любом другом языке, если на то пошло) — большая часть того, что мы делаем, опирается на обработку числовых данных, вычисление новых значений и т.д. Так что не удивительно, что JavaScript имеет полнофункциональный набор математических функций.
В этой статье обсуждаются только основные разделы, которые вам нужно знать сейчас.
Типы чисел
В программировании даже скромная система десятичных чисел, которую мы все так хорошо знаем, сложнее, чем вы думаете. Мы используем разные термины для описания различных типов десятичных чисел. Например:
- Целые — это целые числа, такие как: 10, 400, или -5.
- С плавающей точкой(или: с плавающей запятой) — имеют целую и дробную части, например: 12.5 или 56.7786543.
- Doubles — тип чисел с плавающей точкой, которые имеют большую точность, чем стандартные числа с плавающей точкой (что означает, что они точны для большего числа десятичных знаков).
У нас даже есть разные типы числовых систем:
- Бинарная — низкоуровневый язык компьютеров; нули и единицы (0 и 1);
- Восьмеричная — 8-ми разрядная, использует 0–7 в каждом столбце;
- Десятичная — 10-ти разрядная, использует 0-9 в каждом столбце;
- Шестнадцатеричная — 16-ти разрядная, используют 0–9 и потом a–f в каждом столбце. Вы, возможно, уже встречали эти числа, когда задавали цвет в CSS.
Прежде чем взорвётся ваш мозг, остановитесь прямо здесь и сейчас!
Во-первых, мы просто будем придерживаться десятичных чисел на протяжении всего курса; вы редко когда будете сталкиваться с необходимостью думать в других числовых системах, если вообще когда-либо с ней столкнётесь.
Во-вторых, в отличие от некоторых других языков программирования, JavaScript имеет только один тип данных для чисел, как вы догадались это Number . Это означает, независимо от типа чисел, с которыми вы работаете в JavaScript, обрабатывать вы их будете точно так же.
Для меня всё — числа
Давайте быстро поиграем с некоторыми числами, чтобы снова познакомиться с основным синтаксисом, который нам нужен. Введите команды, перечисленные ниже, в вашу консоль (developer tools JavaScript console), или используйте простую встроенную консоль.
-
Прежде всего, давайте объявим пару переменных и инициализируем их целым числом и числом с плавающей точкой, соответственно, затем введите имена переменных обратно, чтобы проверить, что все в порядке:
var myInt = 5; var myFloat = 6.667; myInt; myFloat;
typeof myInt; typeof myFloat;
Арифметические операторы
Арифметические операторы — это основные операторы, которые мы используем для различных математических операций, например таких, как сложение или вычитание:
| Оператор | Имя | Функция | Пример |
|---|---|---|---|
| + | Сложение | Объединение чисел в одно целое. | 6 + 9 |
| — | Вычитание | Вычитает правое число от левого. | 20 — 15 |
| * | Умножение | Умножает два числа вместе. | 3 * 7 |
| / | Деление | Делит левое число на правое. | 10 / 5 |
| % | Модуль числа | Возвращает значение остатка при делении первого числа на второе. Результат будет иметь тот же знак, что и первое число. | 11 % 3 = 2 (поскольку число 3 вмещается три раза, остатком будет число 2) |
| ** | показатель степени | Возводит базовое число в указанную степень, то есть количество базовых чисел, указанных экспонентой, умножается вместе. Впервые он был представлен в EcmaScript 2016. | 5 ** 5 (возвращает 3125, или как: 5*5*5*5*5) |
Примечание: Иногда числа участвующие в математических операциях называют операндами ( operands (en-US) ).
Нам, вероятно, не нужно учить вас базовым математическим операциям, но мы хотели бы проверить ваше понимание синтаксиса. Попробуйте ввести приведённые ниже примеры в свою консоль (developer tools JavaScript console), или используйте встроенную консоль, с которой вы уже знакомы, чтобы ознакомиться с синтаксисом.
-
Для начала попробуйте ввести простые примеры, такие как:
10 + 7; 9 * 8; 60 % 3;
var num1 = 10; var num2 = 50; 9 * num1; num2 / num1;
5 + 10 * 3; (num2 % 9) * num1; num2 + num1 / 8 + 2;
Некоторые примеры выше могут дать вам не тот результат, которого вы ожидали; приведённый ниже раздел может дать ответ на вопрос о том, почему.
Приоритет операторов
Давайте взглянем на последний пример сверху. Предположим, что num2 содержит значение 50 и num1 содержит значение 10 (как и было обозначено выше):
+ num1 / 8 + 2;
Будучи человеком, вы, вероятно, прочитаете это как «50 плюс 10 равно 60», затем «8 плюс 2 равно 10», и, наконец, «60 делить на 10 равно 6».
Но браузер видит это по-другому: «10 делить на 8 равно 1.25», затем «50 плюс 1.25 плюс 2 равно 53.25».
Это происходит из-за приоритета операторов — некоторые операторы будут применены перед другими в процесс вычисления суммы (в программировании её называют выражением). Приоритет операторов в JavaScript ничем не отличается от приоритета арифметических операций, который вы изучали в школе — умножение и деление всегда выполняются первыми, затем сложение и вычитание (сумма всегда вычисляется слева направо).
Если вы хотите переопределить порядок выполнения операторов, вы можете окружить парными скобками часть выражения, которая должна быть выполнена первой. Для получения результата 6 вам следует сделать следующее:
(num2 + num1) / (8 + 2);
Результат этого выражения равен 6.
Примечание: полный список операторов JavaScript и приоритетов их выполнения можно найти по этой ссылке: Expressions and operators.
Операторы инкремента и декремента
Иногда вам захочется повторно добавить или вычесть единцу к/из значению числовой переменной. Это можно сделать с помощью оператора инкремента ( ++ ) и декремента ( — ). Мы использовали ++ в нашей игре «Угадай число» в статье первое погружение в JavaScript, где мы добавляли 1 к переменной guessCount , в которой хранилось значение количества попыток пользователя после каждого хода.
Примечание: инкремент и декремент часто используются в циклах, о которых вы узнаете позже. Например, если вы захотите пройтись по списку цен и добавить к каждой налог с продаж, вам придётся в цикле обойти каждую цену и провести необходимые вычисления для учёта налога. Инкремент будет использован для перехода на новую ячейку списка при необходимости. У нас есть несложный пример реализации такого списка — попробуйте и взгляните на код чтобы посмотреть, сможете ли вы найти инкременты! Мы взглянем на циклы поближе позже по ходу курса.
Давайте попробуем сыграть с этим в вашей консоли. Для начала заметим, что вы не можете использовать инкремент/декремент непосредственно к числу, что может показаться странным. Дело в том, что мы присваиваем к переменной новое обновлённое число, а не просто вычисляем значение. Следующий пример приведёт к ошибке:
Таким образом, вы можете применить инкремент только к существующим переменным:
var num1 = 4; num1++;
Так, вторая странность! Если вы сделаете это, вы получите значение 4 — браузер возвращает текущее число, после чего применяет к нему оператор инкремента. Вы можете удостовериться в том, что инкремент был применён, узнав значение переменной ещё раз:
То же самое для — : попробуйте пример ниже
var num2 = 6; num2--; num2;
Примечание: вы можете заставить делать это в другом порядке — применить инкремент/декремент и только потом вернуть значение. Для этого необходимо записать оператор слева от переменной, а не справа. Попробуйте пример сверху ещё раз, но в этот раз используйте ++num1 и —num2 .
Операторы присваивания
Операторы присваивания — операторы, которые присваивают значение переменным. Мы уже много раз использовали самый простой из них, = , он просто приравнивает значение переменной слева к значению справа:
var x = 3; // x содержит значение 3 var y = 4; // y содержит значение 4 x = y; // x теперь содержит значение y (x == 4)
Однако есть ещё несколько сложных конструкций, которые позволяют делать ваш код более простым и аккуратным. Наиболее часто используемые перечислены ниже:
| Operator | Name | Purpose | Example | Shortcut for |
|---|---|---|---|---|
| += | Присваивание сложения | Прибавляет значение справа к переменной слева и возвращает новое значение переменной | x = 3; x += 4; | x = 3; x = x + 4; |
| -= | Присваивание вычитания | Вычитает значение справа из переменной слева и возвращает новое значение переменной | x = 6; x -= 3; | x = 6; x = x — 3; |
| *= | Присваивание умножения | Умножает переменную слева на значение справа и возвращает новое значение переменной | x = 2; x *= 3; | x = 2; x = x * 3; |
| /= | Присваивание деления | Делит переменную слева на значение справа и возвращает новое значение переменной | x = 10; x /= 5; | x = 10; x = x / 5; |
Попробуйте использовать такие конструкции, что понять, как они работают. Сможете ли вы определить значение до того, как напишите вторую строку?
Заметьте, что значение справа может быть как числом (константой), так и переменной, например:
var x = 3; // x содержит значение 3 var y = 4; // y содержит значение 4 x *= y; // x содержит значение 12
Примечание: есть ещё другие операторы присваивания, в этой статье перечислены только самые базовые.
Активное обучение: меняем размеры коробки
В этом упражнении вы будете пользоваться числами и операторами для работы с размерами коробки. Коробка рисуется с помощью API браузера, которое называется Canvas API. Вам не следует беспокоиться о том, как это работает — просто сосредоточьтесь на математике. Ширина и высота коробки (в пикселях) определяются переменными x и y , которые изначально равны 50.
В коде сверху, который вы можете изменять, под комментарием есть две строчки, с помощью которых вы можете увеличивать/уменьшать размеры коробки. Мы хотим, чтобы вы выполнили несколько заданий:
- Поменяйте строчку с размером x так, чтобы коробка была шириной 50px, причём 50 должно быть вычислено с помощью чисел 43 и 7 и арифметического оператора.
- Поменяйте строчку с размером y так, чтобы коробка была высотой 75px, причём 75 должно быть вычислено с помощью чисел 25 и 3 и арифметического оператора.
- Поменяйте строчку с размером y так, чтобы коробка была высотой 250, при этом 250 вычислено с помощью двух чисел и оператором взятия остатка (модуль).
- Поменяйте строчку с размером y так, чтобы коробка была высотой 150px, причём 150 вычислено с помощью трёх чисел и операторов вычитания и деления.
- Поменяйте строчку с размером x так, чтобы коробка была шириной 200px, при этом 200 вычислено с помощью числа 4 и оператора присваивания.
- Поменяйте строчку с размером y так, чтобы коробка была высотой 200px, причём 200 вычислено с помощью чисел 50 и 3 и операторов умножения и присваивания сложения.
Не расстраивайтесь, если вы не поняли код сверху. Нажмите кнопку Reset для запуска программы снова. Если вы смогли ответить верно на все вопросы, попробуйте поэкспериментировать с кодом ещё (или, например, предложить друзьям несколько заданий).
Операторы сравнения
Иногда нам может понадобиться проверить какое-либо условие, а затем поступить в зависимости от результата — для этого мы используем операторы сравнения.
| Оператор | Имя | Назначение | Пример |
|---|---|---|---|
| === | Строгое равенство | Проверяет левое и правое значения на идентичность | 5 === 2 + 4 |
| !== | Строгое неравенство | Проверяет левое и правое значения на неидентичность | 5 !== 2 + 3 |
| Меньше | Проверяет, меньше ли левое значение правого | 10 < 6 | |
| > | Больше | Проверяет, больше ли левое значение правого | 10 > 20 |
| Меньше или равно | Проверят, меньше ли левое значение правому (или равно ему) | 3 | |
| >= | Больше или равно | Проверят, больше ли левое значение левого (или равно ему) | 5 >= 4 |
Примечание: вы можете заметить, что некоторые люди используют == и != в их программах для сравнения на равенство и неравенство — это валидные JavaScript-операторы, но они отличаются от === / !== — первая пара проверяет на равенство/неравенство значений, не рассматривая их типы. Вторая пара — строгая версия первой, которая проверяет типы операндов. При использовании строгой версии выявляется больше ошибок, поэтому мы рекомендуем использовать именно её.
Если вы попробуете использовать эти операторы в консоли, вы увидите, что все они возвращают значения true / false — о типе данных boolean мы писали в прошлой статье. С их помощью мы можем принимать решения в нашей программе, например:
- Порождать текст на кнопке в зависимости от того, нажата она или нет.
- Высвечивать сообщение о поражении при проигрыше или поздравление при победе в игре.
- Показывать пользователю верное окно приветствия в зависимости от времени года.
- Увеличивать или уменьшать карту при выборе одной из двух опций.
Мы взглянем на то, как реализовать такую логику после знакомства с условными выражениями в следующей статье. Сейчас мы рассмотрим небольшой пример:
button>Запустить машинуbutton> p>Машина остановленаp>
var btn = document.querySelector("button"); var txt = document.querySelector("p"); btn.addEventListener("click", updateBtn); function updateBtn() if (btn.textContent === "Start machine") btn.textContent = "Stop machine"; txt.textContent = "The machine has started!"; > else btn.textContent = "Start machine"; txt.textContent = "The machine id stopped."; > >
Мы использовали оператор равенства внутри функции updateBtn() . В этом случае мы не проверяем пару математических выражений на равенство значений — мы просто смотрим, является ли текст на кнопке определённой строкой — что по сути является тем же самым. Если кнопка при нажатии содержит «Start machine», мы меняем содержимое метки на «Stop machine» и обновляем метку. Если же текст кнопки — «Stop machine», при нажатии мы возвращаем все обратно.
Примечание: Такой элемент управления, который переключается между двумя состояниями, обычно называется тумблером. Он переключается между одним состоянием и другим: свет включён, свет выключен и т. д.
Итого
В этой статье мы привели основную информацию, необходимую для работы с числами в JavaScript. Вы постоянно будете использовать числа в процессе обучения языку, поэтому желательно разобраться в этом сейчас. Если вам действительно не нравится математика, пусть вас утешит, что эта статья была сравнительно короткой.
В следующей статье мы изучим текст и то, как мы работаем с ним в JavaScript.
Примечание: если вам хочется узнать подробнее о том, как математика реализуется в JavaScript, вы можете посмотреть главный раздел JavaScript MDN. Статьи Числа и даты и Выражения и операторы — хороший вариант для начала.
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 3 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
1. Класс единиц и тысяч
Разряды класса единиц (первого класса): единицы, десятки и сотни.
Пример, в числе \(816\) — \(8\) единиц разряда сотен, \(1\) единица разряда десятков и \(6\) единиц разряда единиц.
Если в числе \(4\), \(5\) или \(6\) цифр, то его можно разбить уже на два класса. Появляется класс тысяч (второй класс).
Класс тысяч делится на разряд единиц тысяч, или просто тысяч, разряд десятков тысяч и разряд сотен тысяч.
Например, число \(743\) \(000\) содержит \(7\) единиц разряда сотен тысяч, \(4\) единицы разряда десятков тысяч, \(3\) единицы разряда тысяч и \(0\) единиц разрядов сотен, десятков и единиц.
Семь математических фокусов, которыми вы удивите любого собеседника

Если по какой-то причине вы все еще не влюблены в математику, то мы знаем, что способно это мгновенно исправить. В восторг от арифметики и ее возможностей приходит любой, кому в руки попала книга «Магия чисел. Моментальные вычисления в уме и другие математические фокусы» (в России выпущена издательством «Манн, Иванов и Фербер»). Она учит считать в уме быстрее, чем на калькуляторе! Причем доступно это каждому – даже тем, кто себя считает гуманитариями до мозга костей. Но самое главное – издание дает возможность получить от математики удовольствие! Да-да, вы придете в восторг сами от себя, когда начнете молниеносно производить в уме многие вычисления. А еще – в восторг можно привести любую компанию, если продемонстрировать ей парочку математических фокусов. Почему бы и не произвести приятное впечатление и не удивить собеседников таким необычным способом? С разрешения издательства публикуем из этой книги семь простых примеров удивительной магии чисел.
1) МГНОВЕННОЕ УМНОЖЕНИЕ
Давайте начнем с одного из моих любимых трюков: как умножать в уме любое двузначное число на 11. Это очень легко, если вы знаете секрет.

Представьте следующую задачу: 32 × 11
Для ее решения нужно просто сложить цифры 3 + 2 = 5, а затем поместить пятерку между двойкой и тройкой. Вот и наше решение: 352
Что может быть легче? Теперь попробуйте 53 × 11
Поскольку 5 + 3 = 8, ответ достаточно прост: 583
Еще пример. Не подглядывая и не записывая, скажите, чему равно: 81 × 11? У вас получилось 891? Поздравляю!
Но пока не слишком воодушевляйтесь: я показал лишь половину того, что необходимо знать. Допустим, задача такая: 85 × 11
Несмотря на то что 8 + 5 = 13, ответ НЕ 8135! Как и прежде цифра 3 ставится между цифрами 8 и 5, но 1 добавляется к цифре 8 для получения правильного ответа 935.
Вот еще пример. Попробуйте перемножить 57 × 11. Так как 5 + 7 = 12, ответ: 627
Можно ли использовать этот метод для умножения трехзначных (или более «значных») чисел на 11? Безусловно. Например, для задачи 314 × 11 ответ все еще будет начинаться с 3 и заканчиваться на 4. Так как 3 + 1 = 4 и 1 + 4 = 5, ответ будет равен 3454.
2) ВОЗВЕДЕНИЕ ВО ВТОРУЮ (В КВАДРАТ) И БОЛЬШИЕ СТЕПЕНИ
Как вы, наверное, знаете, квадрат числа — это заданное число, умноженное само на себя. Например, квадратом 7 будет 7 × 7, то есть 49. Позже я научу вас простому способу, который позволит без труда вычислять квадрат любого двузначного и трехзначного (и состоящего из большего количества знаков) числа.
Этот метод особенно легко применять, если число заканчивается на 5. Поэтому опробуем его прямо сейчас.
1. Ответ должен начинаться с результата умножения первой цифры возводимого в квадрат числа на цифру, большую на единицу, чем первая цифра.
2. Ответ заканчивается на 25.
Например, чтобы возвести в квадрат число 35, мы просто умножаем первую цифру (3) на 4, то есть на единицу большую цифру, после чего добавляем 25. Так как 3 × 4 = 12, следовательно, ответ — 1225. Таким образом, 35 × 35 = 1225. Проделанные шаги можно представить следующим образом:
Как насчет возведения в квадрат числа 85? Так как 8 × 9 = 72, мы мгновенно получаем ответ: 85 × 85 = 7225.
Можно применить похожий прием при умножении двузначных чисел, начинающихся с одинаковых первых цифр, сумма вторых цифр которых равняется 10. Ответ будет состоять из числа, полученного с помощью вышеописанного метода (первая цифра умножается на цифру, на единицу большую), и произведения вторых цифр чисел, участвующих в умножении. Например, попробуем умножить 83 на 87. (Оба числа начинаются на 8, а сумма последних цифр 3 + 7 = 10.) Так как 8 × 9 = 72 и 3 × 7 = 21, ответ — 7221.
Подобным образом получаем из 84 × 86 = 7224.
Теперь ваша очередь. Попробуйте вычислить 26 × 24. С чего начинается ответ? С 2 × 3 = 6 . Чем заканчивается? 6 × 4 = 24. Значит, 26 × 24 = 624.
Помните, что использовать этот метод можно, только если первые цифры чисел одинаковы, а последние дают в сумме 10.
3) КАК ОПРЕДЕЛИТЬ ДЕНЬ НЕДЕЛИ 1 ЯНВАРЯ ЛЮБОГО ГОДА В XXI ВЕКЕ
Сначала ознакомьтесь с представленной таблицей.
Воскресенье – 7 или 0

Например, давайте выясним, каким днем недели будет 1 января 2030 года. Возьмите две последние цифры года и представьте себе, что это ваш счет в ресторане (в данном случае 30 долларов.) Теперь добавьте 25% чаевых, но излишки в центах оставьте себе. (Это можно вычислить, дважды разделив счет пополам и отбросив всю «мелочь». Половина от 30 равна 15, а половина от 15 — 7,50. Оставив излишки себе, получим чаевые в размере 7 долларов.) Отсюда следует, что ваш счет плюс чаевые составляет 37 долларов. Чтобы определить день недели, вычитаем из этой суммы наиболее близкое к ней (но не большее) произведение числа 7 (0, 7, 14, 21, 28, 35, 42, 49, …) и получаем в результате порядковый номер дня. В данном примере, 37 – 35 = 2, значит, 1 января 2030 года приходится на второй день недели, то есть на вторник.
Какой день недели 1 января 2043 года?
произведение цифры 7: – 49
Исключение: если год високосный, уберите 1 доллар из суммы чаевых, высчитанных ранее. Например, для 1 января 2032 года 25% от счета на 32 доллара будут равны 8 долларам чаевых. Вычитание 1 дает в итоге 32 + 7 = 39. Вычитание наибольшего по отношению к сумме счета произведения 7 дает 39 – 35 = 4. Итак, 1 января 2032 года приходится на четвертый день недели, четверг.
4) ЭКСТРАСЕНСОРНАЯ МАТЕМАТИКА
Попросите добровольца в аудитории загадать любое число, состоящее из одной-двух цифр. Затем скажите, что никоим образом не можете знать, что это за число, и предложите сделать следующее.
1. Удвойте число.
3. Разделите сумму на 2.
4. Вычтите из нее исходное число.

Спросите: «Думаете ли вы сейчас о цифре 6?» Опробуйте этот трюк сначала на себе и увидите, что данная последовательность вычислений всегда в итоге приводит к цифре 6, какое бы число вы изначально ни выбрали.
При повторении данного приема попросите добровольца прибавить другое число на втором шаге (скажем, 18). Итоговый ответ будет половиной этого числа (а именно 9).
5) МАГИЯ ЧИСЛА 1089
Следующий трюк существует уже не одно столетие. Сделайте так, чтобы человек из аудитории достал ручку и бумагу:
1) и тайно записал трехзначное число, цифры которого идут в порядке уменьшения (например, 851 или 973);
2) записал число в обратном порядке и вычел его из исходного числа;
3) к полученному ответу добавил его же, только в обратном порядке.
В конце последовательности магическим образом появится ответ 1089, какое бы число ни выбрал доброволец. Например:
Используя число 1089 из предыдущего примера, вручите добровольцу калькулятор и попросите умножить 1089 на любое трехзначное число, не называя его. (Предположим, он тайно умножил 1089 × 256 = 278 784) Теперь поинтересуйтесь, сколько цифр в полученном ответе. Ответ — 6.
Затем попросите: «Громко назовите пять из этих шести цифр в любом порядке. Я попытаюсь определить недостающую». Предположим, доброволец громко перечисляет: «Два…четыре… семь… восемь… восемь». Вы вежливо говорите ему, что он пропустил цифру 7. Секрет основан на том, что число кратно 9 тогда, и только тогда, когда сумма составляющих его цифр кратна 9. Так как 1 + 0 + 8 + 9 = 18 кратно 9, значит, число 1089 кратно 9. Поэтому 1089 при умножении на любое целое число даст кратное 9. И раз уж прозвучавшие цифры в сумме дают 29, и следующее кратное 9, большее 29, это 36, то наш доброволец пропустил число 7 (так как 29 + 7 = 36).
6) БЫСТРЫЕ КУБИЧЕСКИЕ КОРНИ
Попросите кого-нибудь выбрать двузначное число, но не называть его. Затем попросите возвести это число в куб, то есть умножить само на себя трижды, используя калькулятор. Например, если секретное число 68, пусть доброволец вычислит 68 × 68 × 68 = 314 432 и назовет ответ. Как только он произнесет его вслух, вы можете мгновенно раскрыть секрет исходного числа — это кубический корень 68. Как это делается?
Чтобы быстро вычислять кубические корни, нужно выучить кубы чисел от 1 до 10.
Как только вы запомните эти значения, вычислять кубические корни станет так же легко, как и назвать значение числа π. Приведем пример.
Чему равен кубический корень из 314 432? Кажется, что это довольно сложное задание для начала, но не паникуйте, на самом деле оно довольно простое. Как обычно, будем двигаться постепенно.
1. Посмотрите на величину тысяч, 314 в данном примере.
2. Поскольку 314 лежит между 63 = 216 и 73 = 343, то кубический корень находится в диапазоне «60 плюс» (так как 603 = 216 000 и 703 = 343 000). Следовательно, первая цифра кубического корня будет 6.
3. Для определения последней цифры заметьте, что только куб числа 8 оканчивается на 2 (83 = 512), так что последней цифрой будет 8.
Поэтому кубический корень из 314 432 равен 68. Три простых шага — и вы у цели. Обратите внимание, что каждая цифра от 0 до 9 появляется по одному разу в виде последней цифры куба.
Чему равен кубический корень из 19 683?
1. 19 находится между 8 и 27 (23 и 33).
2. Следовательно, кубический корень лежит в диапазоне «20 плюс».
3. Последняя цифра в задаче 3, что соответствует 343 = 73, значит, 7 и будет последней цифрой.
Обратите внимание, что наши выводы по поводу последней цифры работают только тогда, когда исходное число является кубом целого числа.

7) УПРОЩЕННЫЕ КВАДРАТНЫЕ КОРНИ
Квадратные корни так же просто вычислить, если задан полный квадрат. Например, если кто-то сказал вам, что квадрат двузначного числа равен 7569, то вы в состоянии мгновенно ответить, что исходное число (квадратный корень) равно 87.
Вот как это делается.
1. Посмотрите на величину сотен (цифры, предшествующие последним двум) в данном примере.
2. Так как 75 находится между 82 (8 × 8 = 64) и 92 (9 × 9 = 81), то нам известно, что квадратный корень будет где-то в диапазоне «80 плюс». Следовательно, его первая цифра 8.
Существует два числа, квадраты которых заканчиваются на 9: 32 = 9, 72 = 49. Поэтому последняя цифра квадратного корня должна равняться 3 или 7. Таким образом, квадратный корень равен либо 83, либо 87. Какой из них?
3. Сравните исходное число с квадратом числа 85 (который можно легко посчитать как 80 × 9 0 + 25 = 7225). Так как 7569 больше, чем 7225, квадратный корень будет большим числом, то есть 87.
Решим еще один пример. Чему равен квадратный корень из 4761? Поскольку 47 лежит между 62 = 36 и 72 = 49, ответ должен находиться в диапазоне «60 плюс». Если последняя цифра квадрата равна 1, то последняя цифра квадратного корня должна быть 1 или 9. Так как 4761 больше 652 = 4225, то квадратный корень должен равняться 69. Как и с предыдущим трюком для кубического корня, этот метод можно использовать только тогда, когда исходное число является полным квадратом.
*Фотографии предоставлены издательством «Манн, Иванов и Фербер»
Если подытожить, то по прочтении этой книги остается лишь один вопрос. Почему ТАК не учат в школе? Если бы нам преподавали математику как магию чисел, то, бесспорно, число ее поклонников было бы куда больше! А ведь это не только лучшая тренировка для мозга, но еще и полезные, нужные нам каждый день навыки быстрого счета. К счастью, любви все возрасты покорны. И, пожалуй, никому из нас еще не поздно закрутить с математикой увлекательнейший роман. Магия нам в помощь!
Читайте также
Возрастная категория сайта 18 +
Сетевое издание (сайт) зарегистрировано Роскомнадзором, свидетельство Эл № ФС77-80505 от 15 марта 2021 г.
ГЛАВНЫЙ РЕДАКТОР — НОСОВА ОЛЕСЯ ВЯЧЕСЛАВОВНА.
ШЕФ-РЕДАКТОР САЙТА — КАНСКИЙ ВИКТОР ФЕДОРОВИЧ.
АВТОР СОВРЕМЕННОЙ ВЕРСИИ ИЗДАНИЯ — СУНГОРКИН ВЛАДИМИР НИКОЛАЕВИЧ.
Сообщения и комментарии читателей сайта размещаются без предварительного редактирования. Редакция оставляет за собой право удалить их с сайта или отредактировать, если указанные сообщения и комментарии являются злоупотреблением свободой массовой информации или нарушением иных требований закона.
АО «ИД «Комсомольская правда». ИНН: 7714037217 ОГРН: 1027739295781 127015, Москва, Новодмитровская д. 2Б, Тел. +7 (495) 777-02-82.
Исключительные права на материалы, размещённые на интернет-сайте www.kp.ru, в соответствии с законодательством Российской Федерации об охране результатов интеллектуальной деятельности принадлежат АО «Издательский дом «Комсомольская правда», и не подлежат использованию другими лицами в какой бы то ни было форме без письменного разрешения правообладателя.
Приобретение авторских прав и связь с редакцией: kp@kp.ru