https://medium.com/@rathod.sachin1492/efficient-prime-number-checking-in-java-a-step-by-step-guide-547a210c3b3c