페르마의 소정리(Fermat's little theorem)는 다음과 같다.
$p$가 소수이면, $1$보다 큰 임의의 정수 $a$에 대해 $a^p \equiv a \pmod{p}$가 성립한다. 즉, $a$를 $p$제곱한 값을 $p$로 나눈 나머지는 $a$와 같다.
그런데 $p$가 소수가 아니어도 어떤 정수 $a$에 대해 위 합동식이 성립하는 경우가 있다. 이때 $p$를 밑이 $a$인 가짜소수(pseudoprime)라고 한다. (모든 $a$에 대해 이 합동식을 만족하는 합성수를 카마이클 수라고 한다.)
$p$와 $a$가 주어졌을 때, $p$가 밑이 $a$인 가짜소수인지 판별하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 두 정수 $p$와 $a$가 공백으로 구분되어 주어진다. 입력의 마지막 줄에는 0 0이 주어지며, 이 줄은 처리하지 않는다.
$2 < p \le 10^9$, $1 < a < p$
각 테스트 케이스마다 $p$가 밑이 $a$인 가짜소수이면 yes를, 아니면 no를 한 줄에 하나씩 출력한다.