Skip to content

Instantly share code, notes, and snippets.

@keif
Last active August 19, 2021 12:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keif/513e1ec71c1fd9da1bc9076f39e1bace to your computer and use it in GitHub Desktop.
Save keif/513e1ec71c1fd9da1bc9076f39e1bace to your computer and use it in GitHub Desktop.
isPrime and isPrimePalindrome example
package interviewProject;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class InterviewMain {
public static void main(String[] args) {
// Prime Number detector
// Print out all number between 1 and 100
List<Integer> primeList = IntStream.rangeClosed(1, 100)
.boxed().collect(Collectors.toList());
System.out.println("Opening range of numbers to check for prime:");
System.out.println(primeList);
ArrayList<Integer> primeNumbers = new ArrayList<>();
Integer rangeSize = primeList.size();
for (int i = 1; i <= rangeSize; i++) {
if (isPrime(i)) {
primeNumbers.add(i);
}
}
System.out.println("Prime range of numbers:");
System.out.println(primeNumbers);
List<Integer> palindromeRange = IntStream.rangeClosed(1, 1000)
.boxed().collect(Collectors.toList());
Integer palindromeRangeSize = palindromeRange.size();
ArrayList<Integer> palindromeNumbers = new ArrayList<>();
for (int i = 1; i < palindromeRangeSize; i++) {
if (isPrime(i)) {
String numToString = String.valueOf(i);
if (isPalindrome(numToString)) {
palindromeNumbers.add(i);
}
}
}
System.out.println("Palindrome range of numbers:");
System.out.println(palindromeNumbers);
}
public static boolean isPrime(Integer n) {
// def: only div by 1 and itself
// edge cases
if (n <= 1) {
return false;
}
if (n <= 3) {
return true;
}
// we can skip the middle five numbers
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
// check from 2 to n-1
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// check if the provided number is a palindrome
public static boolean isPalindrome(String str) {
int strLength = str.length();
// StringBuilder vs. String concatenation:
// https://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java
StringBuilder reverseStrBuilder = new StringBuilder();
for (int i = (strLength - 1); i >= 0; --i) {
reverseStrBuilder.append(str.charAt(i));
}
return str.equalsIgnoreCase(reverseStrBuilder.toString());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment