aboutsummaryrefslogtreecommitdiff
path: root/challenge-167/michael-dicicco/java/challenge167/circularprime.java
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-167/michael-dicicco/java/challenge167/circularprime.java')
-rw-r--r--challenge-167/michael-dicicco/java/challenge167/circularprime.java46
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;
+ }
+}