74 lines
2.2 KiB
Java
74 lines
2.2 KiB
Java
// Author: Rodney Shaghoulian
|
|
// Github: github.com/RodneyShag
|
|
// HackerRank: hackerrank.com/RodneyShag
|
|
|
|
import java.io.*;
|
|
import java.util.*;
|
|
interface PerformOperation {
|
|
boolean check(int a);
|
|
}
|
|
class MyMath {
|
|
public static boolean checker(PerformOperation p, int num) {
|
|
return p.check(num);
|
|
}
|
|
|
|
public static PerformOperation is_odd() {
|
|
return n -> (n & 1) == 1;
|
|
}
|
|
|
|
public static PerformOperation is_prime() {
|
|
// O(n^(1/2)) runtime
|
|
return n -> {
|
|
if (n < 2) {
|
|
return false;
|
|
}
|
|
int sqrt = (int) Math.sqrt(n);
|
|
for (int i = 2; i <= sqrt; i++) {
|
|
if (n % i == 0) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
}
|
|
|
|
public static PerformOperation is_palindrome() {
|
|
return n -> {
|
|
String original = Integer.toString(n);
|
|
String reversed = new StringBuilder(Integer.toString(n)).reverse().toString();
|
|
return original.equals(reversed);
|
|
};
|
|
}
|
|
}
|
|
|
|
public class Solution {
|
|
public static void main(String[] args) throws IOException {
|
|
MyMath ob = new MyMath();
|
|
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
|
|
int T = Integer.parseInt(br.readLine());
|
|
PerformOperation op;
|
|
boolean ret = false;
|
|
String ans = null;
|
|
while (T--> 0) {
|
|
String s = br.readLine().trim();
|
|
StringTokenizer st = new StringTokenizer(s);
|
|
int ch = Integer.parseInt(st.nextToken());
|
|
int num = Integer.parseInt(st.nextToken());
|
|
if (ch == 1) {
|
|
op = ob.is_odd();
|
|
ret = ob.checker(op, num);
|
|
ans = (ret) ? "ODD" : "EVEN";
|
|
} else if (ch == 2) {
|
|
op = ob.is_prime();
|
|
ret = ob.checker(op, num);
|
|
ans = (ret) ? "PRIME" : "COMPOSITE";
|
|
} else if (ch == 3) {
|
|
op = ob.is_palindrome();
|
|
ret = ob.checker(op, num);
|
|
ans = (ret) ? "PALINDROME" : "NOT PALINDROME";
|
|
}
|
|
System.out.println(ans);
|
|
}
|
|
}
|
|
}
|