解法一:进制转换+数学
主要实现两个小功能:进制转换并翻转,判断是否为素数。
import java.io.*;import java.util.*;public class Main {public static void main(String[] args) throws IOException {StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));while (true) {in.nextToken();int N = (int) in.nval;if (N < 0) {break;}in.nextToken();int radix = (int) in.nval;int reverse = reverse(N, radix);if (isPrime(N) && isPrime(reverse)) {out.println("Yes");} else {out.println("No");}}out.flush();}private static int reverse(int N, int radix) {String s = new StringBuilder(Integer.toString(N, radix)).reverse().toString();return Integer.parseInt(s, radix);}private static boolean isPrime(int N) {if (N <= 1) {return false;}boolean flag = true;for (int i = 2; i <= Math.sqrt(N); ++i) {if (N % i == 0) {flag = false;break;}}return flag;}}
