[HackerRank] Java Lambda Expressions
https://www.hackerrank.com/challenges/java-lambda-expressions/problem?isFullScreen=true
Solution
import java.io.*;
import java.math.BigInteger;
import java.util.*;
interface PerformOperation {
boolean check(int a);
}
class MyMath {
public boolean checker(PerformOperation p, int num) {
return p.check(num);
}
public PerformOperation isOdd() {
return (int a) -> a % 2 != 0;
}
public PerformOperation isPrime() {
return (int a) -> BigInteger.valueOf(a).isProbablePrime(1);
}
public PerformOperation isPalindrome() {
return (int a) -> Integer.toString(a).equals(new StringBuilder(Integer.toString(a)).reverse().toString());
}
}
public class Solution {
public static void main(String[] args) throws IOException {
MyMath ob = new MyMath();
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
int T = Integer.parseInt(br.readLine());
PerformOperation op;
boolean ret;
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());
switch (ch) {
case 1:
op = ob.isOdd();
ret = ob.checker(op, num);
ans = ret ? "ODD" : "EVEN";
break;
case 2:
op = ob.isPrime();
ret = ob.checker(op, num);
ans = ret ? "PRIME" : "COMPOSITE";
break;
case 3:
op = ob.isPalindrome();
ret = ob.checker(op, num);
ans = ret ? "PALINDROME" : "NOT PALINDROME";
break;
}
System.out.println(ans);
T--;
}
}
}
}
Leave a comment