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

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

박테리아

시간 제한2초메모리 제한512 MB

요약
1e9 이하의 n과 m이 주어질 때, 제곱하기 또는 소수로 나누기 연산만으로 n을 m으로 바꾸는 최단 연산 순서를 구하거나 불가능하면 Impossible을 출력한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 그리디, 구현
정답자
아직 제출이 없습니다

문제

어린 생물학자 안톤은 예쁜 유리 플라스크에서 nn마리의 박테리아를 기르고 있다.

안톤은 플라스크에 여러 시약을 넣어 박테리아의 수를 조절할 수 있다. pp가 소수일 때, 안톤은 집에서도 어떤 물질을 만들어 플라스크에 넣으면 박테리아의 수가 정확히 pp배 줄어들게 할 수 있다. 만약 박테리아의 수가 pp로 나누어지지 않으면 그 물질의 효과는 불분명해지고 실험의 과학적 정확성을 잃게 된다. 안톤은 이것을 원하지 않기 때문에 박테리아의 수가 pp로 나누어질 때만 그 물질을 사용한다.

또한 안톤의 부엌에는 리세르그산 디에틸아미드가 무한히 있다. 박테리아가 들어 있는 플라스크에 리세르그산 디에틸아미드를 넣으면 박테리아의 수가 제곱된다.

안톤은 플라스크에 mm마리의 박테리아가 있기를 원한다. 그는 물질을 플라스크에 가능한 한 적은 횟수로 넣고 싶어 한다. 그를 도와주자.

입력

입력 파일에는 두 개의 자연수 nn과 mm (1≤n,m≤1091 \le n, m \le 10^9)이 주어진다. 이는 안톤의 플라스크에 있는 박테리아의 처음 수와 원하는 수이다.

출력

만약 정확히 mm마리의 박테리아를 얻는 것이 불가능하면 출력 파일에 <<Impossible>>이라는 단어를 출력한다.

원하는 결과를 얻을 수 있다면, 그 결과를 얻을 수 있게 하는 가장 짧은 물질 투입 순서를 다음 형식으로 출력한다. 물질 투입은 수 pp로, 물질 투입은 수 0으로 인코딩된다. 수들은 공백 또는 줄 바꿈으로 구분되어야 한다.

만약 mm마리의 박테리아를 남기는 가장 짧은 물질 투입 순서가 여러 개 존재한다면, 그 중 아무거나 하나를 출력한다.

힌트

첫 번째 예제에서 안톤은 플라스크에 물질을 세 번 넣어야 한다. 먼저 \ft{}를 넣어 박테리아의 수를 절반으로 줄여 6마리로 만들고, 그 다음 을 넣어 박테리아의 수를 제곱해 36마리로 만들고, 마지막으로 다시 \ft{}를 넣어 박테리아의 수를 2로 나누어 18마리로 만든다.

예제2

  1. 예제 1

    입력
    12 18
    
    예상 출력
    2 0 2
    
  2. 예제 2

    입력
    56 6
    
    예상 출력
    Impossible