Арифметические алгоритмы (Теория чисел)

114 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

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

И.Ильф, Е.Петров. <<Двенадцать стульев>>.

Ипполит Матвеевич Воробьянинов ходит вдоль улицы из \(n\) домов, пронумерованных числами от \(1\) до \(n\), и расклеивает афиши. Сначала он наклеил афиши на каждый дом, номер которого делился без остатка на \(a\). Поскольку афиш осталось еще много, вторым проходом он наклеил афиши на каждый дом, номер которого делился без остатка на \(b\). При этом, если на доме уже была наклеена афиша, новую Воробьянинов не клеил. Сколько всего афиш расклеил бывший предводитель дворянства?

Формат входных данных
Три строки содержат три натуральных числа: \(n\) — количество домов на улице, \(a\) и \(b\) — выбранные Воробьяниновым числа. Все числа не превосходят \(10^9\).

Формат выходных данных
Выведите одно неотрицательное целое число — количество расклеенных афиш.

Замечание
В первом примере на улице \(10\) домов. Ипполит Матвеевич первым проходом расклеил пять афиш на дома, номера которых делятся на \(2\), то есть на дома с номерами \(2\), \(4\), \(6\), \(8\), \(10\). Вторым проходом он расклеил две афиши на дома, номера которых делятся на \(3\), то есть на дома с номерами \(3\) и \(9\). Дом номер \(6\) он пропустил — на нем афиша уже висит. Всего наклеено \(7\) афиш.

Во втором примере Воробьянинов не наклеит ни одной афиши.

Маленький Миша летом гостит у бабушки в деревне. Каждый день он съедает по одному фрукту и отмечает это в своем блокноте. Миша еще слишком мал и умеет рисовать только палочки (I) и галочки (V).  Каждый день, после того как он съел свой фрукт, он в блокнот рисует карандашом одну палочку (I) . Раз в пять дней он стирает четыре предыдущие палочки и рисует галочку (V).
Вас просят определить, какая запись получится у Миши на n-й день пребывания в деревне у бабушки.
 

Формат входных данных
На ввод подается одно число \(n\) (\(1 \le n \le 10\,000\)).

Формат выходных данных
Выведите запись, которая получится в блокноте у Миши на \(n\)-й день.

Если вас интересует математика, то эта задача для вас.

Будем называть целое число \(n\) \(k\)-степенным, если его можно разложить в сумму различных степеней числа \(k\), то есть если \(n\) представимо в виде \(n = k^{a_1} + k^{a_2} + \ldots + k^{a_d}\), где все \(a_i\) целые и \(a_i \ne a_j\) для всех \(i \ne j\).

Ответьте на множество запросов: какое минимальное целое число, большее либо равное \(n_i\), является \(k_i\)-степенным?

Формат входных данных
Первая строка ввода содержит целое число \(q\) — количество запросов, на которые вам предстоит ответить (\(1 \le q \le 10^5\)).

Каждая из следующих \(q\) строк содержит два целых числа \(n_i\) и \(k_i\), описывающие \(i\)-й запрос (\(1 \le n_i \le 10^9\); \(2 \le k_i \le 10^9\)).

Формат выходных данных
Выведите \(q\) строк, в \(i\)-й из которых выведите минимальное \(k_i\)-хорошее число, большее либо равное \(n_i\).

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.

Операцией возведения в степень пользоваться нельзя!
 

Входные данные

Вводится натуральное число N (N < 109).

Выходные данные

Выведите ответ на задачу.

 
Примеры
Входные данные Выходные данные
1 1 YES
2 4 YES
3 5 NO
 
В одной очень влиятельной организации для упрощения контроля въезда автотранспорта сотрудников на территорию решили, что автомобильные номера у всех сотрудников должны иметь одинаковое произведение цифр, равное числу N.
Номера в этой стране могут быть любыми натуральными числами, а жители страны очень любят «маленькие» номера — чем меньше число в номере автомобиля, тем более престижным он считается.
Директор организации хочет, чтобы ни у кого из сотрудников не было более престижного номера, чем у него. Поскольку организация очень влиятельная, директор может получить любой номер по своему желанию.

Входные данные
Программа получает на вход одно натуральное число N, не превосходящее 1018, — произведение
цифр автомобильных номеров сотрудников очень влиятельной организации.
Обратите внимание, значение N может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип long long в языке C++, тип int64 в Pascal, тип long в Java и C#).

Выходные данные
Выведите одно целое число — минимальное значение номера автомобиля директора очень влиятельной организации.
Если ни одного подходящего номера не существует, программа должна вывести число «−1».
Примеры
Входные данные Выходные данные
1 70 257
2 101 -1
В деревне Круглая первые дома построены вдоль главной кольцевой дороги длиной M километров. Эти дома имеют номера от 1 до M. Василий ведет здоровый образ жизни и ежедневно проезжает на велосипеде K километров по этой дороге. Сегодня он начал движение от дома с номером S. Возле какого дома он сегодня закончит свой велопробег? Василий всегда двигается в сторону увеличения номеров домов.

Входные данные
Программа получает на вход три строки. В первой строке записано число M (1 <= M <= 100) -  протяженность главной кольцевой дороги. Во второй строке записано число K (1 <= K <= 105) - количество километров, которые проезжает Василий по этой дороге. В третьей строке записано число S (1 <= S <= M) - номер дома, от которого начал движение Василий.

Выходные данные
Выведите на экран ответ ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 12
2
3
5
2 12
12
1
1
✓ 4 767✗ 9 986400лёгкаяВойти и решать

Сегодня мальчик Саша на уроке математики узнал про фракталы. Учитель показывал так называемую «кривую дракона». Она представляет собой геометрическую фигуру, которая строится следующим образом: на первом шаге проводится отрезок из начала координатной плоскости в точку (0; 1). Далее на каждом шаге из конца фрактала повторяется уже нарисованная часть фигуры, повернутая на 90 градусов против часовой стрелки (см. рисунок).

После уроков Саша попробовал сам изобразить «кривую дракона», и теперь он хочет знать, в какой точке координатной плоскости он закончил рисовать фрактал, проделав описанные выше N шагов. Требуется написать программу, которая по заданному числу N определяет координаты конца фрактала после выполнения N шагов.



Входные данные
Вводится одно целое число N (1 <= N <= 30).

Выходные данные
Выведите два числа через пробел - координаты конца фрактала.
 
 
Примеры
Входные данные Выходные данные
1 2 1 1
2 4 2 -2
Напишите программу, вычисляющую \(2^N\).

Входные данные
Программа получает на вход натуральное число N (N<=30).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 4 16
По данному натуральному числу N выведите такое наименьшее целое число k, что \(2^k >= N\).

Входные данные
Программа получает на вход натуральное число N.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 10 4

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово в противном случае. Операцией возведения в степень пользоваться нельзя!


Входные данные
Программа получает на вход натуральное число (N < 109). 

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 5 NO
2 32 YES
3 1 YES

По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания. Операцией возведения в степень пользоваться нельзя!



Входные данные
Программа получает на вход натуральное число.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 30 1 2 4 8 16
Задано натуральное число N, не превышающее 108 . Требуется определить, сколько чётных цифр входит в его запись в троичной системе счисления.
Входные данные
число N, записанное в десятичной системе счисления.
Выходные данные
количество чётных цифр, входящих в запись числа N в троичной системе счисления.
Примеры
Входные данные Выходные данные Пояснение
1 4 0 410=113
2 15 2 1510=1203
Дана последовательность из N чисел. Найдите минимальную сумму всех элементов собственного префикса последовательности, у которого сумма всех элементов префикса при делении на K имеет тот же остаток, что и сумма всех элементов данной последовательности.  Если таких префиксов несколько определите тот, у которого меньше длина. Выведите на экран длину такого префикса. Гарантируется, что такой префикс существует.


Входные данные
В первой строке записаны два числа: количество чисел в последовательности N (1 <= N <= 108) и число (1 <= K <= 100). Далее идет N строк, по одному целому числу в строке. Каждое число не превышает 10000.

Выходные данные
Выведите на экран ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 5 2
2
-2
2
-2
2
2
 

 
Дана последовательность из N натуральных чисел. Найдите максимальную сумму всех элементов собственного префикса последовательности, у которого сумма всех элементов префикса при делении на K имеет тот же остаток, что и сумма всех элементов данной последовательности. Гарантируется, что такой префикс существует.


Входные данные
В первой строке записаны два числа: количество чисел в последовательности N (1 <= N <= 108) и число (1 <= K <= 100). Далее идет N строк, по одному натуральному числу в строке. Каждое число не превышает 10000.

Выходные данные
Выведите на экран ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 5 3
33
41
18
23
40
92
 
 
Дана последовательность из N натуральных чисел. Найдите минимальную длину собственного префикса последовательности, у которого сумма всех элементов префикса при делении на K имеет тот же остаток, что и сумма всех элементов данной последовательности. Гарантируется, что такой префикс существует.

Входные данные
В первой строке записаны два числа: количество чисел в последовательности N (1 <= N <= 108) и число (1 <= K <= 100). Далее идет N строк, по одному натуральному числу в строке. Каждое число не превышает 10000.

Выходные данные
Выведите на экран ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 5 3
33
41
18
23
40
2
 

 
Дана последовательность из N натуральных чисел. Найдите максимальную длину собственного префикса последовательности, у которого сумма всех элементов префикса при делении на K имеет тот же остаток, что и сумма всех элементов данной последовательности. Гарантируется, что такой префикс существует.


Входные данные
В первой строке записаны два числа: количество чисел в последовательности N (1 <= N <= 108) и число (1 <= K <= 100). Далее идет N строк, по одному натуральному числу в строке. Каждое число не превышает 10000.

Выходные данные
Выведите на экран ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 5 3
33
41
19
22
40
2
 
 
Дана последовательность из N натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, начинающиеся с первого элемента последовательности. Найдите максимальную длину подпоследовательности с суммой элементов кратной K. Длина подпоследовательности равна числу элементов в ней.

Входные данные
В первой строке записаны два числа: количество чисел в последовательности N (1 <= N <= 108) и число (1 <= K <= 100). Далее идет N строк, по одному натуральному числу в строке. Каждое число не превышает 10000.

Выходные данные
Выведите на экран одно число - количество элементов в найденной подпоследовательности.
 
Примеры
Входные данные Выходные данные
1 5 3
33
41
19
22
40
3
✓ 83✗ 119500лёгкаяВойти и решать
Громозека и Алиса старые друзья. Встречаясь на какой-то планете, они постоянно заходят в кафе. Но Алиса не любит заходить в каждое a-ое кафе, а Громозека в каждое g-ое кафе. Чтобы никого не обидеть, они не заходят в те кафе, в которые не хотят заходить одновременно и Алиса и Громозека. На очередной прогулке у них на пути N кафе. Во сколько кафе они смогут зайти?

Входные данные
Единственная строка содержит три целых числа - a , g , N ( 1 <= a , g , N <= 109 ).

Выходные данные
Выведите единственное число - количество кафе, в которые смогут зайти Громозека и Алиса.
 
Примеры
Входные данные Выходные данные
1 1 1 10 0
2 1 2 5 3
Марья Ивановна с Марьей Михайловной привели школьников в кинотеатр. Чтобы не было никаких обид, Марья Ивановна построила всех школьников по алфавиту и рассадила их: сначала в первый ряд слева направо, затем во второй слева направо и т.д., заполнив весь зал из n рядов по m кресел. Тут пришла Марья Михайловна и сказала, что ребята сели неправильно – надо пересесть. Она предложила сначала заполнить все первые места от первого ряда к последнему, затем все вторые места и т. д.

Определите, сколько школьников после такой пересадки останется на своем месте.

Например, если n = 3 и m = 3, то в первом случае дети сядут так:

1    2    3
4    5    6
7    8    9
а во втором – так:
1    4    7
2    5    8
3    6    9
Таким образом, три школьника: 1, 5 и 9 останутся на своих местах.

Входные данные
Вводятся два целых числа n и m (1 ≤ n, m ≤ 109 ).

Выходные данные
Выведите количество школьников, которые останутся на своих местах.
 
Примеры
Входные данные Выходные данные
1 3 3 3
2 2 4 2

Значение выражения \( 27^7 - 3^{11} + 36 - x\) записали в троичной системе счисления, при этом сумма цифр в записи оказалась равной b (вводится с клавиатуры, 0 < b < 100).  Напишите программу, которая выводит на экран минимальное натуральное значение x. Гарантируется, что ответ существует.

Поделиться
Класснуть