Системы счисления(36 задач)
"Длинная" арифметика(58 задач)
Простые числа и разложение на множители(45 задач)
Остатки(21 задач)
Быстрое возведение в степень(3 задач)
Быстрое преобразование Фурье(3 задач)
Коля учится в третьем классе, сейчас они проходят простые дроби с натуральными числителем и знаменателем. Вчера на уроке Коля узнал, что дробь называется правильной, если ее числитель меньше знаменателя, и несократимой, если нет равной ей дроби с меньшими натуральными числителем и знаменателем.
Коля очень любит математику, поэтому дома он долго экспериментировал, придумывая и решая разные задачки с правильными несократимыми дробями. Одну из этих задач Коля предлагает решить вам с помощью компьютера.
Найдите наибольшую правильную несократимую дробь, у которой сумма числителя и знаменателя равна \(n\).
Во входном файле записано одно целое число \(n\) (\(3\le n\le 1000\)).
Выведите в выходной файл числитель и знаменатель искомой дроби.
10
3 7
23
11 12
Назовем античислом для числа N число, получающееся по следующему правилу. Число N записывают в двоичной системе счисления, и затем заменяют все нули на единицы, а единицы - на нули. Требуется написать программу, вычисляющую античисло.
Вводится одно число N в десятичной системе счисления - натуральное число, не превышающее 1 000 000.
Выведите античисло для числа N (также в десятичной системе счисления).
5
2
12
3
23
8
Выведите все числа в диапазоне от 2 до N, у которых есть хотя бы три различных простых делителя.
Вводится одно натуральное число N, не превосходящее 100000.
Выведите через пробел в возрастающем порядке все искомые числа.
50
30 42
24
Андрей недавно начал изучать информатику. Одним из первых алгоритмов, который он изучил, был алгоритм Евклида для нахождения наибольшего общего делителя (НОД) двух чисел. Напомним, что наибольшим общим делителем двух чисел \(a\) и \(b\) называется наибольшее натуральное число \(x\), такое, что и число \(a\), и число \(b\) делится на него без остатка. Алгоритм Евклида заключается в следующем:
Андрей достаточно быстро освоил алгоритм Евклида и вычислил с его помощью много наибольших общих делителей. Поняв, что надо дальше совершенствоваться, ему пришла идея решить новую задачу. Пусть заданы числа \(a\), \(b\), \(c\) и \(d\). Требуется узнать, наступит ли в процессе реализации алгоритма Евклида для заданной пары чисел (\(a\), \(b\)) такой момент, когда перед исполнением шага 2 число \(a\) будет равно \(c\), а число \(b\) будет равно \(d\).
Требуется написать программу, которая решает эту задачу.
Входные данные
Первая строка входных данных содержит количество наборов входных данных \(K~(1 \le K \le 100)\). Далее идут описания этих наборов. Каждое описание состоит из двух строк. Первая из них содержит два целых числа: \(a\), \(b~(1 \le a, b \le 10^{18})\). Вторая строка – два целых числа: \(c, d~(1 \le c, d \le 10^{18})\).
Все числа в строках разделены пробелом.
Выходные данные
Для каждого набора входных данных выведите слово "YES", если в процессе применения алгоритма Евклида к паре чисел (\(a\), \(b\)) в какой-то момент получается пара (\(c\), \(d\)). В противном случае выведите слово "NO".
Тесты к данной задаче состоят из двух групп: