números magnánimos

Número Magnánimo es un número de al menos 2 cifras tal que la suma obtenida insertando un “+” entre su cifra en cualquier posición da un número primo.

Por ejemplo: 

4001 es el Número Magnánimo porque los números 4+001=5, 40+01=41 y 400+1=401 son todos números primos.

Comprobar si N es un número magnánimo

Dado un número N , la tarea es verificar si N es un número magnánimo o no. Si N es un número magnánimo, escriba «Sí», de lo contrario, escriba «No».

Ejemplos: 

Entrada: N = 4001 
Salida: Sí 
Explicación: 
4+001=5, 40+01=41 y 400+1=401 son todos números primos.

Entrada: N = 18 
Salida: No

Acercarse: 

  1. Convierte el número N en string
  2. Atraviesa la cuerda y encuentra toda la parte izquierda y derecha de la cuerda.
  3. Convierta la parte izquierda y la parte derecha de la string en un número entero y verifique si la suma de la parte izquierda y la parte derecha no es un número primo y luego devuelva falso
  4. De lo contrario, devuelva verdadero al fin

Por ejemplo, si N = 4001 
parte izquierda + parte derecha = número primo 
4+001=5 = número primo 
40+01=41 número primo 
400+1=401 número primo

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ implementation to check
// if a number is Magnanimous
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if n is prime
bool isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so that we can skip
    // middle five numbers in below loop
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for (int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if the number is
// Magnanimous or not
bool isMagnanimous(int N)
{
    // converting the number to string
    string s = to_string(N);
 
    // finding length of string
    int l = s.length();
 
    // number should not be of single digit
    if (l < 2)
        return false;
 
    // loop to find all left and right
    // part of the string
    for (int i = 0; i < l - 1; i++) {
        string left = s.substr(0, i + 1);
        string right = s.substr(i + 1);
        int x = stoi(left);
        int y = stoi(right);
        if (!isPrime(x + y))
            return false;
    }
    return true;
}
 
// Driver Code
int main()
{
    int N = 12;
    isMagnanimous(N) ? cout << "Yes"
                     : cout << "No";
    return 0;
}

Java

// Java implementation to check 
// if a number is Magnanimous
class GFG{
 
// Function to check if n is prime
static boolean isPrime(int n)
{
     
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so that we can skip
    // middle five numbers in below loop
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for(int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if the number is
// Magnanimous or not
static boolean isMagnanimous(int N)
{
     
    // Converting the number to string
    String s = Integer.toString(N);
 
    // Finding length of string
    int l = s.length();
 
    // Number should not be of single digit
    if (l < 2)
        return false;
 
    // Loop to find all left and right
    // part of the string
    for(int i = 0; i < l - 1; i++)
    {
        String left = s.substring(0, i + 1);
        String right = s.substring(i + 1);
        int x = Integer. valueOf(left);
        int y = Integer. valueOf(right);
         
        if (!isPrime(x + y))
            return false;
    }
    return true;
}
 
// Driver code
public static void main(String[] args)
{
    int N = 12;
     
    if(isMagnanimous(N))
        System.out.print("Yes\n");
    else
        System.out.print("No\n");
}
}
 
// This code is contributed by shubham

Python3

# Python3 implementation to check
# if a number is Magnanimous
 
# Function to check if n is prime
def isPrime(n):
     
    # Corner cases
    if (n <= 1):
        return False
    if (n <= 3):
        return True
 
    # This is checked so that we can skip
    # middle five numbers in below loop
    if (n % 2 == 0) or (n % 3 == 0):
        return False
         
    i = 5
    while (i * i <= n):
        if (n % i == 0 or n % (i + 2) == 0):
            return False
             
        i = i + 6
 
    return True
 
# Function to check if the number is
# Magnanimous or not
def isMagnanimous(N):
 
    # Converting the number to string
    s = str(N)
 
    # Finding length of string
    l = len(s)
 
    # Number should not be of single digit
    if (l < 2):
        return False
 
    # Loop to find all left and right
    # part of the string
    for i in range(l - 1):
        left = s[0 : i + 1]
        right = s[i + 1 : ]
        x = int(left)
        y = int(right)
         
        if (not isPrime(x + y)):
            return False
 
    return True
 
# Driver code
N = 12
 
if isMagnanimous(N):
    print("Yes")
else:
    print("No")
 
# This code is contributed by divyeshrabadiya07

C#

// C# implementation to check
// if a number is Magnanimous
using System;
 
class GFG{
 
// Function to check if n is prime
static bool isPrime(int n)
{
     
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so that we can skip
    // middle five numbers in below loop
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for(int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if the number is
// Magnanimous or not
static bool isMagnanimous(int N)
{
     
    // Converting the number to string
    String s = N.ToString();
 
    // Finding length of string
    int l = s.Length;
 
    // Number should not be of single digit
    if (l < 2)
        return false;
 
    // Loop to find all left and right
    // part of the string
    for(int i = 0; i < l - 1; i++)
    {
        String left = s.Substring(0, i + 1);
        String right = s.Substring(i + 1);
         
        int x = int.Parse(left);
        int y = int. Parse(right);
         
        if (!isPrime(x + y))
            return false;
    }
    return true;
}
 
// Driver code
public static void Main(String[] args)
{
    int N = 12;
     
    if(isMagnanimous(N))
        Console.Write("Yes\n");
    else
        Console.Write("No\n");
}
}
 
// This code is contributed by amal kumar choubey

Javascript

<script>
    // Javascript implementation to check
    // if a number is Magnanimous
     
    // Function to check if n is prime
    function isPrime(n)
    {
 
        // Corner cases
        if (n <= 1)
            return false;
        if (n <= 3)
            return true;
 
        // This is checked so that we can skip
        // middle five numbers in below loop
        if (n % 2 == 0 || n % 3 == 0)
            return false;
 
        for(let i = 5; i * i <= n; i = i + 6)
            if (n % i == 0 || n % (i + 2) == 0)
                return false;
 
        return true;
    }
 
    // Function to check if the number is
    // Magnanimous or not
    function isMagnanimous(N)
    {
 
        // Converting the number to string
        let s = N.toString();
 
        // Finding length of string
        let l = s.length;
 
        // Number should not be of single digit
        if (l < 2)
            return false;
 
        // Loop to find all left and right
        // part of the string
        for(let i = 0; i < l - 1; i++)
        {
            let left = s.substring(0, i + 1);
            let right = s.substring(i + 1);
            let x = parseInt(left);
            let y = parseInt(right);
 
            if (!isPrime(x + y))
                return false;
        }
        return true;
    }
     
    let N = 12;
      
    if(isMagnanimous(N))
        document.write("Yes");
    else
        document.write("No");
 
// This code is contributed by mukesh07.
</script>
Producción: 

Yes

 

Complejidad de tiempo: O(n)  
Referencia: http://www.numbersaplenty.com/set/magnanimous_number/
 

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *