Codeforces Round 232 (Div. 1) |
---|
Закончено |
Многие из вас, конечно, умеют считать φ(n) — количество целых положительных чисел, меньших либо равных n, которые взаимно просты с n. А что, если нужно посчитать φ(φ(...φ(n))), где функция φ берется k раз, а n задано в каноническом разложении на простые множители?
Посчитайте значение функции φ(φ(...φ(n))) для заданных n и k. Результат требуется вывести в каноническом разложении на простые множители.
В первой строке задается целое число m (1 ≤ m ≤ 105) — количество различных простых делителей, участвующих в разложении числа n.
В каждой из следующих m строк записана пара целых чисел pi, ai (2 ≤ pi ≤ 106; 1 ≤ ai ≤ 1017), разделенные пробелом, — очередной простой делитель числа n и степень, в которой он в него входит. Сумма всех ai не превосходит 1017. Простые делители во входных данных идут в строго возрастающем порядке.
В последней строке задано целое число k (1 ≤ k ≤ 1018).
В первой строке выведите целое число w — количество различных простых делителей числа φ(φ(...φ(n))), где функция φ берется k раз.
В следующих w строках через пробел выведите пары целых чисел qi, bi (bi ≥ 1) — очередной простой делитель результата и степень, в которой он входит в результат. Числа qi должны идти в строго возрастающем порядке.
1
7 1
1
2
2 1
3 1
1
7 1
2
1
2 1
1
2 100000000000000000
10000000000000000
1
2 90000000000000000
О каноническом разложении числа на простые множители можно прочитать здесь: http://ru.wikipedia.org/wiki/Основная_теорема_арифметики.
О функции φ(n) можно прочитать здесь: http://ru.wikipedia.org/wiki/Функция_Эйлера.
Название |
---|