완전 P제곱수

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

요약
각 정수 x에 대해 x가 어떤 정수의 p제곱과 같아지는 가장 큰 지수 p를 구한다.
난이도

보통10점 중 5점

유형
정수론, 수학, 이분 탐색
정답자
아직 제출이 없습니다

문제

정수 bb에 대해 x=b2x = b^2으로 나타낼 수 있는 xx를 완전제곱수라 하고, x=b3x = b^3으로 나타낼 수 있는 xx를 완전세제곱수라 한다. 마찬가지로 어떤 정수 bb에 대해 x=bpx = b^p로 나타낼 수 있으면 xx를 완전 pp제곱수라고 한다.

정수 xx가 주어질 때, x=bpx = b^p를 만족하는 정수 bb가 존재하는 가장 큰 정수 pp를 구하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 정수 xx 하나가 적힌 한 줄이다. xx는 ∣x∣≥2|x| \ge 2를 만족하며 부호 있는 32비트 정수 범위, 즉 −2147483648≤x≤2147483647-2147483648 \le x \le 2147483647 안에 있다.

마지막 테스트 케이스 다음 줄에는 00이 하나 주어지며, 이 줄은 처리하지 않고 입력의 끝을 나타낸다.

출력

각 테스트 케이스에 대해, x=bpx = b^p를 만족하는 정수 bb가 존재하는 가장 큰 정수 pp를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    17
    1073741824
    25
    0
    
    예상 출력
    1
    30
    2
    
  2. 예제 2

    입력
    -8
    -27
    -32
    0
    
    예상 출력
    3
    3
    5