Skip to content

Commit 5fc39c0

Browse files
authored
Merge branch 'master' into master
2 parents bf74f4f + 640d823 commit 5fc39c0

File tree

4 files changed

+86
-24
lines changed

4 files changed

+86
-24
lines changed

DIRECTORY.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@
304304
* [WildcardMatching](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/WildcardMatching.java)
305305
* [WineProblem](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/dynamicprogramming/WineProblem.java)
306306
* geometry
307+
* [BresenhamLine](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/geometry/BresenhamLine.java)
307308
* [ConvexHull](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/geometry/ConvexHull.java)
308309
* [GrahamScan](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/geometry/GrahamScan.java)
309310
* [Point](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/geometry/Point.java)
@@ -902,6 +903,7 @@
902903
* [WildcardMatchingTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/WildcardMatchingTest.java)
903904
* [WineProblemTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/dynamicprogramming/WineProblemTest.java)
904905
* geometry
906+
* [BresenhamLineTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/geometry/BresenhamLineTest.java)
905907
* [ConvexHullTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/geometry/ConvexHullTest.java)
906908
* [GrahamScanTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/geometry/GrahamScanTest.java)
907909
* greedyalgorithms
@@ -1026,6 +1028,7 @@
10261028
* [MedianOfMatrixtest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/MedianOfMatrixtest.java)
10271029
* [MedianOfRunningArrayTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/MedianOfRunningArrayTest.java)
10281030
* [MirrorOfMatrixTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java)
1031+
* [PalindromePrimeTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/PalindromePrimeTest.java)
10291032
* [PalindromeSinglyLinkedListTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java)
10301033
* [RangeInSortedArrayTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/RangeInSortedArrayTest.java)
10311034
* [ThreeSumProblemTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/ThreeSumProblemTest.java)

src/main/java/com/thealgorithms/datastructures/trees/BinaryTree.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ public void preOrder(Node localRoot) {
281281
}
282282

283283
/**
284-
* Prints rightChild - leftChild - root
284+
* Prints leftChild - rightChild - root
285285
*
286286
* @param localRoot The local root of the binary tree
287287
*/
Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,57 @@
11
package com.thealgorithms.misc;
22

3-
import java.util.Scanner;
3+
import java.util.ArrayList;
4+
import java.util.List;
45

56
public final class PalindromePrime {
67
private PalindromePrime() {
78
}
89

9-
public static void main(String[] args) { // Main function
10-
Scanner in = new Scanner(System.in);
11-
System.out.println("Enter the quantity of First Palindromic Primes you want");
12-
int n = in.nextInt(); // Input of how many first palindromic prime we want
13-
functioning(n); // calling function - functioning
14-
in.close();
15-
}
10+
public static boolean prime(int num) {
11+
if (num < 2) {
12+
return false; // Handle edge case for numbers < 2
13+
}
14+
if (num == 2) {
15+
return true; // 2 is prime
16+
}
17+
if (num % 2 == 0) {
18+
return false; // Even numbers > 2 are not prime
19+
}
1620

17-
public static boolean prime(int num) { // checking if number is prime or not
1821
for (int divisor = 3; divisor <= Math.sqrt(num); divisor += 2) {
1922
if (num % divisor == 0) {
20-
return false; // false if not prime
23+
return false;
2124
}
2225
}
23-
return true; // True if prime
26+
return true;
2427
}
2528

26-
public static int reverse(int n) { // Returns the reverse of the number
29+
public static int reverse(int n) {
2730
int reverse = 0;
2831
while (n != 0) {
29-
reverse *= 10;
30-
reverse += n % 10;
32+
reverse = reverse * 10 + (n % 10);
3133
n /= 10;
3234
}
3335
return reverse;
3436
}
3537

36-
public static void functioning(int y) {
37-
if (y == 0) {
38-
return;
38+
public static List<Integer> generatePalindromePrimes(int n) {
39+
List<Integer> palindromicPrimes = new ArrayList<>();
40+
if (n <= 0) {
41+
return palindromicPrimes; // Handle case for 0 or negative input
3942
}
40-
System.out.print(2 + "\n"); // print the first Palindromic Prime
43+
44+
palindromicPrimes.add(2); // 2 is the first palindromic prime
4145
int count = 1;
4246
int num = 3;
43-
while (count < y) {
44-
if (num == reverse(num) && prime(num)) { // number is prime and it's reverse is same
45-
count++; // counts check when to terminate while loop
46-
System.out.print(num + "\n"); // print the Palindromic Prime
47+
48+
while (count < n) {
49+
if (num == reverse(num) && prime(num)) {
50+
palindromicPrimes.add(num);
51+
count++;
4752
}
48-
num += 2; // inrease iterator value by two
53+
num += 2; // Skip even numbers
4954
}
55+
return palindromicPrimes;
5056
}
5157
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.thealgorithms.misc;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
7+
import java.util.List;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class PalindromePrimeTest {
11+
12+
@Test
13+
public void testPrimeWithPrimeNumbers() {
14+
assertTrue(PalindromePrime.prime(2), "2 should be prime");
15+
assertTrue(PalindromePrime.prime(3), "3 should be prime");
16+
assertTrue(PalindromePrime.prime(5), "5 should be prime");
17+
assertTrue(PalindromePrime.prime(11), "11 should be prime");
18+
}
19+
20+
@Test
21+
public void testPrimeWithNonPrimeNumbers() {
22+
assertFalse(PalindromePrime.prime(1), "1 is not prime");
23+
assertFalse(PalindromePrime.prime(4), "4 is not prime");
24+
assertFalse(PalindromePrime.prime(9), "9 is not prime");
25+
assertFalse(PalindromePrime.prime(15), "15 is not prime");
26+
}
27+
28+
@Test
29+
public void testReverse() {
30+
assertEquals(123, PalindromePrime.reverse(321), "Reverse of 321 should be 123");
31+
assertEquals(7, PalindromePrime.reverse(7), "Reverse of 7 should be 7");
32+
assertEquals(1221, PalindromePrime.reverse(1221), "Reverse of 1221 should be 1221");
33+
}
34+
35+
@Test
36+
public void testGeneratePalindromePrimes() {
37+
List<Integer> result = PalindromePrime.generatePalindromePrimes(5);
38+
List<Integer> expected = List.of(2, 3, 5, 7, 11);
39+
assertEquals(expected, result, "The first 5 palindromic primes should be [2, 3, 5, 7, 11]");
40+
}
41+
42+
@Test
43+
public void testGeneratePalindromePrimesWithZero() {
44+
List<Integer> result = PalindromePrime.generatePalindromePrimes(0);
45+
assertTrue(result.isEmpty(), "Generating 0 palindromic primes should return an empty list");
46+
}
47+
48+
@Test
49+
public void testGeneratePalindromePrimesWithNegativeInput() {
50+
List<Integer> result = PalindromePrime.generatePalindromePrimes(-5);
51+
assertTrue(result.isEmpty(), "Generating a negative number of palindromic primes should return an empty list");
52+
}
53+
}

0 commit comments

Comments
 (0)