Java Lambda Expressions

  • + 0 comments

    My solution:

    interface Predicate{

    boolean test(int a);
    

    } public class Solution {

    public static void main(String[] args) {
    
        Scanner scan = new Scanner(System.in);
        int full = scan.nextInt();
        while(full--> 0){
            int code = scan.nextInt();
            int number = scan.nextInt();
            if (code==1){
                boolean a = op(n-> isOdd(n), number);
            System.out.println(a==true?"EVEN":"ODD");
            }else if(code==2){
                   boolean a = op(n-> isPrime(n), number);
            System.out.println(a==true?"PRIME":"COMPOSITE");
            }else{
                   boolean a = op(n-> isPalindrome(n), number);
            System.out.println(a==true?"PALINDROME":"NOT PALINDROME");
            }
        }
    }
    static boolean op(Predicate<Integer> predi, int number) {
        return predi.test(number);
    
    }
    static boolean isPrime(int number) {
        for(int i=2;i<(int)Math.sqrt(number);i++){
            if(number%i==0) return false;
        }
        return true;
    }
    static boolean isPalindrome(int number) {
        String c = ""+number;
        StringBuilder b = new StringBuilder(c).reverse();
        int d = Integer.parseInt(b.toString());
        return number==d;
    }
    
    static boolean isOdd(int number) {
        return number%2==0;
    }
    

    }