52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
// Author: Rodney Shaghoulian
|
|
// Github: github.com/RodneyShag
|
|
// HackerRank: hackerrank.com/RodneyShag
|
|
|
|
import java.io.*;
|
|
import java.lang.reflect.*;
|
|
import java.util.*;
|
|
import java.util.regex.*;
|
|
import java.security.*;
|
|
|
|
public class Solution {
|
|
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
|
|
o = new Inner().new Private();
|
|
System.out.println(num + " is " + ((Solution.Inner.Private) o).powerof2(num));
|
|
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);
|
|
}
|
|
}
|