시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 169 33 27 22.314%

문제

x가 정수 b의 제곱(x = b2)으로 나타낼 수 있으면 x를 완전 제곱수라고 한다. 또, x를 정수 b의 세제곱(x = b3)으로 나타낼 수 있으면 x를 완전 세제곱수라고 한다. 즉, x를 b의 p제곱(x = bp)으로 나타낼 수 있으면, x를 완전 p제곱수라고 한다.

x가 주어졌을 때, 가장 큰 p를 찾는 프로그램을 작성하시오.

입력

테스트 케이스는 정수 x를 포함하는 한 줄로 이루어져 있다. x는 절대값이 2보다 크거나 같고, C,C++,Java에서 32비트 int 범위 안에 있다. 마지막 테스트 케이스 다음 줄에는 0이 있다.

출력

각각의 테스트 케이스에 대해서, x가 완전 p제곱수 일 때, 가장 큰 정수 p를 출력한다.

예제 입력

17
1073741824
25
0

예제 출력

1
30
2

힌트

출처

Contest > Waterloo's local Programming Contests > 31 January, 2004 E번

  • 잘못된 조건을 찾은 사람: august14
  • 문제를 번역한 사람: baekjoon