package HackerRank; import java.io.*; import java.lang.reflect.*; import java.util.*; import java.util.regex.*; import java.security.*; public class ThirtyNine { public static void main(String[] args) throws Exception { DoNotTerminate.forbidExit(); try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine().trim()); Object o;// Must be used to hold the reference of the instance of the class Solution.Inner.Private Inner innerInstance = new Inner(); // Create an instance of the Private inner class via the outer class instance Inner.Private privateInstance = innerInstance.new Private(); // Call the powerof2 method String result = privateInstance.powerof2(num); // Print the result System.out.println(num + " is " + result); // Create the reference for 'o' to hold the Private class instance o = privateInstance; System.out.println("An instance of class: " + o.getClass().getCanonicalName() + " has been created"); }//end of try catch (DoNotTerminate.ExitTrappedException e) { System.out.println("Unsuccessful Termination!!"); } }//end of main static class Inner{ private class Private{ private String powerof2(int num){ return ((num&num-1)==0)?"power of 2":"not a power of 2"; } } }//end of Inner }//end of Solution class DoNotTerminate { //This class prevents exit(0) public static class ExitTrappedException extends SecurityException { private static final long serialVersionUID = 1L; } public static void forbidExit() { final SecurityManager securityManager = new SecurityManager() { @Override public void checkPermission(Permission permission) { if (permission.getName().contains("exitVM")) { throw new ExitTrappedException(); } } }; System.setSecurityManager(securityManager); } }