↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!

yzman

Автор, Редактор

Фанфики

2 произведения» 
Кровавое воскресенье
Джен, Мини, Закончен
1.2k 3 59
Житие Аргуса Филча
Джен, Мини, Закончен
1.3k 6 28

Редактура

4 произведения» 
Мой дракон
Гет, Макси, Закончен
16k 29 294
Криптонит для змей
Джен, Макси, Закончен
18k 44 369 1
Превратности судьбы
Гет, Макси, Закончен
16k 8 306
Одна из них... История Кейт Олсен
Гет, Макси, Заморожен
716 0 3

Награды

21 награда» 
14 лет на сайте 14 лет на сайте
29 марта 2024
13 лет на сайте 13 лет на сайте
29 марта 2023
12 лет на сайте 12 лет на сайте
29 марта 2022
1000 просмотров 1000 просмотров
31 марта 2021
11 лет на сайте 11 лет на сайте
29 марта 2021

Блог » Поиск

До даты
Вчера был тренировочный ЕГЭ по информатике. Знакомый препод поделился одним подъ**истым заданием "на алгоритмизацию", которое стояло 27 номером.

На вход дана строка - двоичная запись нечётного положительного числа X, меньшего 2 в степени 500. Необходимо вывести строку - двоичную запись минимального произведения чисел Y и Z, где Y и Z - любые числа, удовлетворяющие условиям:
1) X=Y+Z
2) оба Y и Z являются простыми
Гарантируется корректность вводной строки, а так же, что существует хотя бы одна пара Y и Z.

И даны два числа, что-то вроде 110011100111 и последовательность из 450+ ноликов и единичек , заканчивающаяся на 110011. В ответ нужно записать результат работы алгоритма для каждого из двух чисел.

Ответ - гениален. Но учит делать костыли )


Замечаем, что числа заканчиваются на 11. Заменяем эти 11 на 010 в любом текстовом редакторе, вот он и ответ.

По сути, мы пользуемся тем, что нам гарантируют, что решение есть. Если число нечётное, и представлено в виде суммы слагаемых, то одно - всегда чётное, второе - всегда нечётное. Значит, если Y и Z существуют, то Y будет простым чётным, а Z - простым нечётным. Простое чётное - одно - двойка. Поэтому, если решение есть, то оно будет единственным.

Так что нам нужно в двоичной записи числа вычесть 2 и умножить на 2 (Y*Z = 2(X-2)). А это, если число заканчивается в двоичной записи на 11 эквивалентно тому, что предпоследний ноль поменяли на единицу, и дописали к этому результату ноль.

Вот таки дела, малята.

#егэ #реал #школа
Свернуть сообщение
-
Показать полностью
ПОИСК
ФАНФИКОВ









Закрыть
Закрыть
Закрыть