시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 64 29 27 67.500%

문제

은행수란 정수 m과 n의 쌍 (m,n)이다. 예를 들어, (1,1), (-2,1), (-3,-1)은 은행수이다.

은행수의 곱셈 (m,n) · (x,y) = (mx - ny, my + nx) 이다. 예를 들어, (1,1)·(-2,1) = (-3,-1)이다.

이 때, (m,n) · (x,y) = (p,q)를 만족하는 은행수 (x,y)가 존재한다면, (m,n)은 은행수 (p,q)의 약수라고 한다.

모든 (1,0), (0,1), (-1,0), (0,-1), (m,n), (-n,m), (-m,-n), (n,-m)은 임의의 은행수 (m,n)의 약수이다. 만약, m2 + n2 > 1이라면, 앞의 8개 수는 모두 다를 것이다. 즉, m2 + n2 > 1을 만족하는 은행수는 적어도 8개의 약수가 있다.

만약, m2 + n2 > 1을 만족하는 은행수 (m,n)의 약수가 8개라면, 이 수를 소수라고 한다.

은행수가 주어졌을 때, 소수인지 아닌지 알아내는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 은행수 (m,n)의 m과 n이 공백으로 구분되어 있다. (1 < m2 + n2 < 20000)

출력

각 테스트 케이스에 대해서, 입력으로 주어진 은행수가 소수라면 P를, 아니라면 C를 출력한다.

예제 입력

8
10 0
0 2
-3 0
4 2
0 -13
-4 1
-2 -1
3 -1

예제 출력

C
C
P
C
C
P
P
C

힌트

m2 + n2 > 0인 경우에 m2 + n2이 mp + nq와 mq - np의 공약수라면, (m,n)은 (p,q)의 약수이고, 그 역도 성립한다.

만약, (m,n) · (x,y) = (p,q)라면, (m2 + n2)(x2 + y2) = p2 + q2이다.

출처

ACM-ICPC > Regionals > Asia > Japan > Asia Regional Contest 2012 in Tokyo A번

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: ntopia