Java Lambda Expressions

  • + 0 comments

    this is the easy solution without making more method in the class mymath //**************** import java.io.; import java.util.;

    public class Solution {

    public static void main(String[] args) throws IOException {
        MyMath ob = new MyMath();
        Scanner br = new Scanner(System.in);
        int T = Integer.parseInt(br.nextLine());
        PerformOperation op;
        boolean ret = false;
        String ans = null;
        while (T--> 0) {
            String s = br.nextLine().trim();
            String[] st = s.split("\\s");
            int ch = Integer.parseInt(st[0]);
            int num = Integer.parseInt(st[1]);
            if (ch == 1) {
                op = (a) -> {return a % 2 != 0;};
                ret = ob.checker(op, num);
                ans = (ret) ? "ODD" : "EVEN";
            } else if (ch == 2) {
                op = (a) -> {
                        if (a < 2) {
                            return false;
                        } else if (a == 2) {
                            return true;
                        } else if (a % 2 == 0) {
                            return false;
                        }
                        int sqrt = (int) Math.sqrt(a);
                        for (int i = 3; i <= sqrt; i += 2) {
                            if (a % i == 0) {
                                return false;
                            }
                        }
                        return true;
                        };
                ret = ob.checker(op, num);
                ans = (ret) ? "PRIME" : "COMPOSITE";
            } else if (ch == 3) {
                op = a -> {
                        String str = String.valueOf(a);
                        int start = 0;
                        int end = str.length() - 1;
                        while (start < end) {
                            if (str.charAt(start) != str.charAt(end)) {
                                return false;
                            }
                            start++;
                            end--;
                        }
                        return true;
                    };
                ret = ob.checker(op, num);
                ans = (ret) ? "PALINDROME" : "NOT PALINDROME";
    
            }
            System.out.println(ans);
        }
        br.close();
    }
    

    }

    @FunctionalInterface interface PerformOperation { boolean check(int a); } class MyMath { public boolean checker(PerformOperation p, int num) { return p.check(num); } }

    `