Темы --> Информатика --> Алгоритмы --> Арифметические алгоритмы --> Простые числа и разложение на множители
---> 45 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 1 2 3 4 5 6 7 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes
Необходимо подсчитать количество нулей в конце числа N!, записанного в K-ичной системе счисления.

В 3141 году очередная экспедиция на Марс обнаружила в одной из пещер таинственные знаки. Они однозначно доказывали существование на Марсе разумных существ. Однако смысл этих таинственных знаков долгое время оставался неизвестным. Недавно один из ученых, профессор Очень-Умный, заметил один интересный факт: всего в надписях, составленных из этих знаков, встречается ровно \(K\) различных символов. Более того, все надписи заканчиваются на длинную последовательность одних и тех же символов.

Вывод, который сделал из своих наблюдений профессор, потряс всех ученых Земли. Он предположил, что эти надписи являются записями факториалов различных натуральных чисел в системе счисления с основанием \(K\). А символы в конце - это конечно же нули - ведь, как известно, факториалы больших чисел заканчиваются большим количеством нулей. Например, в нашей десятичной системе счисления факториалы заканчиваются на нули, начиная с 5!=1·2·3·4·5 . А у числа 100! в конце следует 24 нуля в десятичной системе счисления и 48 нулей в системе счисления с основанием 6 - так что у предположения профессора есть разумные основания!

Теперь ученым срочно нужна программа, которая по заданным числам \(N\) и \(K\) найдет количество нулей в конце записи в системе счисления с основанием \(K\) числа \(N\)!=1·2·3·...·(\(N\)-1)·\(N\), чтобы они могли проверить свою гипотезу. Вам придется написать им такую программу!

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

В первой строке входных данных содержатся числа \(N\) и \(K\), разделенные пробелом, (1 <= \(N\) <= \(10^9\), 2 <= \(K\) <= 1000).

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

Выведите число \(X\) - количество нулей в конце записи числа \(N\)! в системе счисления с основанием \(K\).

Примеры
Входные данные
5 10
Выходные данные
1
Входные данные
1 2
Выходные данные
0
Входные данные
100 10
Выходные данные
24
Входные данные
1000 10
Выходные данные
249
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Строительная компания хочет построить дом, в котором будет \(n\) квадратных комнат. Каждая комната характеризуется своим размером — длиной стены. Обозначим размеры комнат в новом доме как \(a_1\), \(a_2\), …, \(a_n\).

При этом для того, чтобы квартиры в доме активнее распродавались, компания объявила его «Домом оригинальности и гармонии». Оригинальность означает, что размер любой комнаты не должен делиться на размер никакой другой комнаты. Свойство гармонии требует, чтобы площадь любой комнаты делилась на размер каждой из комнат. Иначе говоря, для любых различных \(i\) и \(j\) должны выполняться условия: \(a_i\) не делится на \(a_j\), а \(a_i\)2 делится на \(a_j\).

Требуется по заданному числу n выбрать такие размеры комнат, чтобы выполнялись свойства оригинальности и гармонии. При этом с целью экономии строительных материалов размер каждой комнаты не должен превышать 263 – 1.

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

Входной файл содержит число \(n\) (1 ≤ \(n\) ≤ 1000).

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

Выведите в выходной файл размеры комнат — \(n\) положительных целых чисел, не превосходящих 263 – 1. Разделяйте числа пробелами.

Примеры
Входные данные
2
Выходные данные
6523157998489532400
5519595229491142800
ограничение по времени на тест
4.0 second;
ограничение по памяти на тест
64 megabytes

Вывести все простые числа от \(M\) до \(N\) включительно.

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

В первой строке находятся разделённые пробелом \(M\) и \(N\). 2 <= \(M\) <= \(N\) <= 300 000.

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

Вывести числа в порядке возрастания, по одному в строке. Если между \(M\) и \(N\) включительно нет простых - вывести "Absent".

Примеры
Входные данные
2 5
Выходные данные
2
3
5
Входные данные
4 4
Выходные данные
Absent
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Вывести все простые числа от \(M\) до \(N\) включительно.

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

В первой строке находятся разделённые пробелом \(M\) и \(N\). 2 <= \(M\) <= \(N\) <= 1 000 000.

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

Вывести числа в порядке возрастания, по одному в строке. Если между \(M\) и \(N\) включительно нет простых - вывести "Absent".

Примеры
Входные данные
2 5
Выходные данные
2
3
5
Входные данные
4 4
Выходные данные
Absent
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Вывести представление целого числа \(N\) в виде произведения простых чисел.

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

В первой строке находится единственное число \(N\). 2 <= N <= 231 - 1.

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

Выводится список чисел в порядке неубывания, разделённых знаком "*".

Примеры
Входные данные
30
Выходные данные
2*3*5
Входные данные
16
Выходные данные
2*2*2*2

Страница: << 1 2 3 4 5 6 7 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест