JavaAlgorithms/Misc/PalindromePrime.java

48 lines
1.4 KiB
Java
Raw Normal View History

package Misc;
2017-10-04 02:52:54 +08:00
import java.util.Scanner;
2017-10-04 02:52:54 +08:00
public class PalindromePrime {
2020-10-24 18:23:28 +08:00
public static void main(String[] args) { // Main funtion
Scanner in = new Scanner(System.in);
System.out.println("Enter the quantity of First Palindromic Primes you want");
2021-10-01 13:08:17 +08:00
int n = in.nextInt(); // Input of how many first palindromic prime we want
2020-10-24 18:23:28 +08:00
functioning(n); // calling function - functioning
in.close();
}
2017-10-04 02:52:54 +08:00
2020-10-24 18:23:28 +08:00
public static boolean prime(int num) { // checking if number is prime or not
for (int divisor = 3; divisor <= Math.sqrt(num); divisor += 2) {
if (num % divisor == 0) {
return false; // false if not prime
}
2017-10-04 02:52:54 +08:00
}
2020-10-24 18:23:28 +08:00
return true; // True if prime
}
2017-10-04 02:52:54 +08:00
2020-10-24 18:23:28 +08:00
public static int reverse(int n) { // Returns the reverse of the number
int reverse = 0;
while (n != 0) {
reverse *= 10;
reverse += n % 10;
n /= 10;
2017-10-04 02:52:54 +08:00
}
2020-10-24 18:23:28 +08:00
return reverse;
}
2017-10-04 02:52:54 +08:00
2020-10-24 18:23:28 +08:00
public static void functioning(int y) {
if (y == 0) return;
System.out.print(2 + "\n"); // print the first Palindromic Prime
int count = 1;
int num = 3;
while (count < y) {
if (num == reverse(num) && prime(num)) { // number is prime and it's reverse is same
count++; // counts check when to terminate while loop
System.out.print(num + "\n"); // print the Palindromic Prime
}
num += 2; // inrease iterator value by two
2017-10-04 02:52:54 +08:00
}
2020-10-24 18:23:28 +08:00
}
}