Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package emirps;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.LinkedList;
- public class Emirps {
- public LinkedList<Integer> listEmirps = new LinkedList<Integer>();
- public Emirps(int valor) {
- obtenerEmirps(valor);
- }
- public Boolean[] obtenerPrimos(int valor) {
- Boolean arrayNum[] = new Boolean[valor + 1];
- arrayNum[0] = false;
- arrayNum[1] = true;
- if (valor < 2) {
- return arrayNum;
- }
- arrayNum[2] = true;
- boolean siguienteValor = true;
- for (int i = 3; i <= valor; i++) {
- arrayNum[i] = siguienteValor;
- siguienteValor = !siguienteValor;
- }
- for (int i = 3; i <= Math.sqrt(valor); i = i + 2) {
- if (arrayNum[i] == true) {
- for (int j = i * 2; j <= valor; j = j + i) {
- arrayNum[j] = false;
- }
- }
- }
- return arrayNum;
- }
- public static boolean esPrimo(int numero) {
- if (numero == 1 || numero == 2) {
- return true;
- }
- if (numero == 0 || numero % 2 == 0) {
- return false;
- }
- for (int i = 3; i <= Math.sqrt(numero); i = i + 2) {
- if (numero % i == 0) {
- return false;
- }
- }
- return true;
- }
- public void obtenerEmirps(int valor) {
- Boolean numPrimos[] = obtenerPrimos(valor);
- for (int i = 10; i <= valor; i++) {
- if (numPrimos[i]) {
- int numReves = darVuelta(i);
- if (numReves != i) {
- if (numReves <= valor) {
- if (numPrimos[numReves]) {
- listEmirps.add(i);
- }
- } else if (esPrimo(numReves)) {
- listEmirps.add(i);
- }
- }
- }
- }
- }
- public static int darVuelta(int numero) {
- int aux = 0;
- while (numero > 0) {
- aux = aux * 10 + numero % 10;
- numero /= 10;
- }
- return aux;
- }
- public static void main(String[] args) {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- try {
- while (br.ready()) {
- int valor = 0;
- String line = br.readLine();
- line = line.trim();
- Emirps emirps = new Emirps(Integer.parseInt(line));
- while (!emirps.listEmirps.isEmpty()) {
- valor += emirps.listEmirps.getFirst();
- emirps.listEmirps.remove();
- }
- System.out.println(valor);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement