diff options
Diffstat (limited to 'challenge-167/michael-dicicco/java/challenge167/circularprime.java')
| -rw-r--r-- | challenge-167/michael-dicicco/java/challenge167/circularprime.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/challenge-167/michael-dicicco/java/challenge167/circularprime.java b/challenge-167/michael-dicicco/java/challenge167/circularprime.java new file mode 100644 index 0000000000..a7038ffba1 --- /dev/null +++ b/challenge-167/michael-dicicco/java/challenge167/circularprime.java @@ -0,0 +1,46 @@ +package challenge167; + +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * + * @author mddicicco + */ +public class circularprime { + public static Set<String> used_numbers = new LinkedHashSet<>(); + public static boolean isPrime(int someNumber){ + if (someNumber <= 1){ + return false; + } + for(int i = 2; i < (someNumber - 1); i++){ + if (someNumber % i == 0){ + return false; + } + } + return true; + } + + public static String rotate(String someNumber){ + // rotate to the left one character + return someNumber.substring(1,someNumber.length()) + someNumber.substring(0,1); + } + + public static boolean validate(String someNumber){ + // check if the original string is prime + if (!isPrime(Integer.parseInt(someNumber))){ + return false; + } + + String temp = someNumber; + // check if any rotations of the string are not prime + for(int i = 0; i < someNumber.length() - 1; i++){ + temp = rotate(temp); + if (!isPrime(Integer.parseInt(temp))){ + return false; + } + used_numbers.add(temp); + } + return true; + } +} |
