아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Простое произведение

시간 제한1초메모리 제한1024 MB

요약
정수 n을 준소수(부호 있는 소수)의 곱으로 나타내는 모든 방법을 순서를 구분하지 않고 나열한다.
난이도

보통10점 중 7점

유형
정수론, 백트래킹, 수학
정답자
아직 제출이 없습니다

문제

Натуральное число pp называется простым, если оно имеет ровно два различных делителя: 11 и pp. Например, числа 22, 33, 55 являются простыми. Число 11 простым не считается.

Целое число pp будем называть квазипростым, если pp или −p-p является простым. Например, числа −2-2, 22, −3-3, 33, −5-5, 55 являются квазипростыми.

Хотя любое натуральное число можно единственным образом представить в виде произведения простых, для целых чисел и квазипростых это уже неверно. Например, число 1212 можно тремя способами представить в виде произведения квазипростых: 12=2⋅2⋅312=2\cdot 2\cdot 3, 12=(−2)⋅2⋅(−3)12=(-2)\cdot 2\cdot (-3), 12=(−2)⋅(−2)⋅312=(-2)\cdot (-2)\cdot 3.

Задано целое число nn. Выведите все способы представить nn в виде произведения квазипростых. Произведения, которые отличаются только порядком множителей, считаются одним способом.

입력

На первой строке ввода находится число nn (−109≤n≤109-10^9 \le n \le 10^9, n≠0n \ne 0, n≠±1n \ne \pm 1).

출력

На первой строке выведите kk --- количество способов представить nn в виде произведения квазипростых. В следующих kk строках выведите все способы представить nn в виде произведения квазипростых. Произведения можно выводить в любом порядке, множители в каждом произведении можно выводить в любом порядке.

예제1

  1. 예제 1

    입력
    12
    
    예상 출력
    2 2 3
    -2 2 -3
    -2 -2 3