Compruebe si el número dado es el número Emirp o no

Un Número Emirp (primo escrito al revés) es un número primo que da como resultado un primo diferente cuando se invierten sus dígitos decimales. Esta definición excluye los primos palindrómicos relacionados. 
Ejemplos: 
 

Input : n = 13
Output : 13 is Emirp!
Explanation :
13 and 31 are both prime numbers. 
Thus, 13 is an Emirp number.

Input : n = 27
Output : 27 is not Emirp.

Objetivo: Ingrese un número y encuentre si el número es un número emirp o no. 
 

Enfoque: ingrese un número y primero verifique si es un número primo o no. Si el número es un número primo, entonces encontramos el reverso del número original y verificamos si el número invertido es primo o no. Si el número invertido también es primo, entonces el número original es un Número Emirp; de lo contrario, no lo es.
A continuación se muestra la implementación del enfoque anterior:. 
 

C++

// C++ program to check if given
// number is Emirp or not.
#include <iostream>
using namespace std;
 
// Returns true if n is prime.
// Else false.
bool isPrime(int n)
{
    // Corner case
    if (n <= 1)
        return false;
 
    // Check from 2 to n-1
    for (int i = 2; i < n; i++)
        if (n % i == 0)
            return false;
 
    return true;
}
 
// Function will check whether number
// is Emirp or not
bool isEmirp(int n)
{
    // Check if n is prime
    if (isPrime(n) == false)
        return false;
 
    // Find reverse of n
    int rev = 0;
    while (n != 0) {
        int d = n % 10;
        rev = rev * 10 + d;
        n /= 10;
    }
 
    // If both Original and Reverse are Prime,
    // then it is an Emirp number
    return isPrime(rev);
}
 
// Driver code
int main()
{
    int n = 13; // Input number
    if (isEmirp(n) == true)
        cout << "Yes";
    else
        cout << "No";
}
 
// This code is contributed by Anant Agarwal.

Java

// Java program to check if given number is
// Emirp or not.
import java.io.*;
class Emirp {
    // Returns true if n is prime. Else
    // false.
    public static boolean isPrime(int n)
    {
        // Corner case
        if (n <= 1)
            return false;
 
        // Check from 2 to n-1
        for (int i = 2; i < n; i++)
            if (n % i == 0)
                return false;
 
        return true;
    }
 
    // Function will check whether number
    // is Emirp or not
    public static boolean isEmirp(int n)
    {
        // Check if n is prime
        if (isPrime(n) == false)
            return false;
 
        // Find reverse of n
        int rev = 0;
        while (n != 0) {
            int d = n % 10;
            rev = rev * 10 + d;
            n /= 10;
        }
 
        // If both Original and Reverse are Prime,
        // then it is an Emirp number
        return isPrime(rev);
    }
 
    // Driver Function
    public static void main(String args[]) throws IOException
    {
        int n = 13; // Input number
        if (isEmirp(n) == true)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}

Python3

# Python3 code to check if
# given number is Emirp or not.
 
# Returns true if n is prime.
# Else false.
def isPrime( n ):
     
    # Corner case
    if n <= 1:
        return False
     
    # Check from 2 to n-1
    for i in range(2, n):
        if n % i == 0:
            return False
     
    return True
 
# Function will check whether
# number is Emirp or not
def isEmirp( n):
     
    # Check if n is prime
    n = int(n)
    if isPrime(n) == False:
        return False
         
        # Find reverse of n
    rev = 0
    while n != 0:
        d = n % 10
        rev = rev * 10 + d
        n = int(n / 10)
         
         
    # If both Original and Reverse
    # are Prime, then it is an
    # Emirp number
    return isPrime(rev)
 
# Driver Function
n = 13 # Input number
if isEmirp(n):
    print("Yes")
else:
    print("No")
     
# This code is contributed by "Sharad_Bhardwaj".

C#

// C# program to check if given
// number is Emirp or not.
using System;
 
class Emirp {
    // Returns true if n is prime
    // Else false.
    public static bool isPrime(int n)
    {
        // Corner case
        if (n <= 1)
            return false;
 
        // Check from 2 to n-1
        for (int i = 2; i < n; i++)
            if (n % i == 0)
                return false;
 
        return true;
    }
 
    // Function will check whether number
    // is Emirp or not
    public static bool isEmirp(int n)
    {
        // Check if n is prime
        if (isPrime(n) == false)
            return false;
 
        // Find reverse of n
        int rev = 0;
        while (n != 0) {
            int d = n % 10;
            rev = rev * 10 + d;
            n /= 10;
        }
 
        // If both Original and Reverse are Prime,
        // then it is an Emirp number
        return isPrime(rev);
    }
 
    // Driver Function
    public static void Main()
    {
        int n = 13; // Input number
        if (isEmirp(n) == true)
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP program to check if given
// number is Emirp or not.
 
// Returns true if n
// is prime else false
 
function isPrime($n)
{
    // Corner case
    if ($n <= 1)
        return -1;
 
    // Check from 2 to n-1
    for ($i = 2; $i < $n; $i++)
        if ($n % $i == 0)
            return -1;
 
    return 1;
}
 
// Function will check
// whether number is
// Emirp or not
function isEmirp($n)
{
    // Check if n is prime
    if (isPrime($n) == -1)
        return -1;
 
    // Find reverse of n
    $rev = 0;
    while ($n != 0)
    {
        $d = $n % 10;
        $rev = $rev * 10 + $d;
        $n /= 10;
    }
         
    // If both Original and
    // Reverse are Prime,
    // then it is an Emirp number
    return isPrime($rev);
}
 
// Driver code
$n = 13;
 
if (isEmirp($n) ==-1)
    echo "Yes";
    else
    echo "No";
 
// This code is contributed by ajit
?>

Javascript

<script>
 
// javascript program to check if given number is
// Emirp or not.
 
    // Returns true if n is prime. Else
    // false.
    function isPrime(n)
    {
        // Corner case
        if (n <= 1)
            return false;
 
        // Check from 2 to n-1
        for (i = 2; i < n; i++)
            if (n % i == 0)
                return false;
 
        return true;
    }
 
    // Function will check whether number
    // is Emirp or not
    function isEmirp(n)
    {
        // Check if n is prime
        if (isPrime(n) == false)
            return false;
 
        // Find reverse of n
        var rev = 0;
        while (n != 0) {
            var d = n % 10;
            rev = rev * 10 + d;
            n = parseInt(n/10);
        }
 
        // If both Original and Reverse are Prime,
        // then it is an Emirp number
        return isPrime(rev);
    }
 
    // Driver Function
 
        var n = 13; // Input number
        if (isEmirp(n) == true)
            document.write("Yes");
        else
            document.write("No");
 
// This code contributed by Princi Singh
</script>

Producción : 
 

Yes

Complejidad temporal: O(n)

Espacio Auxiliar: O(1)
 

Publicación traducida automáticamente

Artículo escrito por Anshika Goyal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *