Prueba de primalidad para la suma de dígitos en lugares impares de un número

Dado un entero ‘n’, la tarea es verificar si la suma de los dígitos en las posiciones impares (de derecha a izquierda) es primo o no. 
Si es primo, escriba «SÍ» o «NO» de lo contrario.
Ejemplos: 
 

Entrada: n = 123 
Salida: NO 
Como, 1 + 3 = 4 no es primo.
Entrada: n = 42 
Salida: SI 
Dado que 2 es un número primo. 
 

Método: Primero, encuentre la suma de los dígitos que están en posiciones impares, es decir, 1, 3, 5,… (comenzando desde la derecha). 
Si la suma es prima, imprima ‘SÍ’; de lo contrario, imprima ‘NO’.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to do Primality test
// for the sum of digits at
// odd places of a number
 
#include <bits/stdc++.h>
using namespace std;
 
// Function that return sum
// of the digits at odd places
int sum_odd(int n)
{
    int sum = 0, pos = 1;
    while (n) {
        if (pos % 2 == 1)
            sum += n % 10;
        n = n / 10;
        pos++;
    }
    return sum;
}
 
// Function that returns true
// if the number is prime
// else false
bool check_prime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This condition is checked so that
    // we can skip middle five
    // numbers in the 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;
}
 
// Driver code
int main()
{
    int n = 223;
 
    // Get the sum of the
    // digits at odd places
    int sum = sum_odd(n);
 
    if (check_prime(sum))
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    return 0;
}

Java

// Java  program to do Primality test
// for the sum of digits at
// odd places of a number
 
import java.io.*;
 
class GFG {
    // Function that return sum
// of the digits at odd places
static int sum_odd(int n)
{
    int sum = 0, pos = 1;
    while (n>0) {
        if (pos % 2 == 1)
            sum += n % 10;
        n = n / 10;
        pos++;
    }
    return sum;
}
 
// Function that returns true
// if the number is prime
// else false
static boolean check_prime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This condition is checked so that
    // we can skip middle five
    // numbers in the 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;
}
 
// Driver code
    public static void main (String[] args) {
     
    int n = 223;
    // Get the sum of the
    // digits at odd places
    int sum = sum_odd(n);
    if (check_prime(sum))
        System.out.println ("YES" );
    else
        System.out.println("NO");
    }
}

Python3

# Python3 program to do Primality test 
# for the sum of digits at 
# odd places of a number
 
# Function that return sum
# of the digits at odd places
def sum_odd(n):
    sums = 0
    pos = 1
    while (n!=0):
        if (pos % 2 == 1):
            sums += n % 10
        n = n // 10
        pos+=1
    return sums
 
# Function to check if a
# number is prime
 
def check_prime(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
   
    for i in range(5,n,6):
        if (n % i == 0 or n % (i + 2) == 0):
            return False
    return True
 
#driver code
n = 223
# Get the sum of the
# digits at odd places
sums = sum_odd(n)
if (check_prime(sums)):
    print("YES")
else:
    print("NO")
 
#this code is improved by sahilshelangia

C#

// C#  program to do Primality test
// for the sum of digits at
// odd places of a number
using System;
 
public class GFG{
     
// Function that return sum
// of the digits at odd places
static int sum_odd(int n)
{
    int sum = 0, pos = 1;
    while (n>0) {
        if (pos % 2 == 1)
            sum += n % 10;
        n = n / 10;
        pos++;
    }
    return sum;
}
 
// Function that returns true
// if the number is prime
// else false
static bool check_prime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This condition is checked so that
    // we can skip middle five
    // numbers in the 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;
}
 
// Driver code
     
    static public void Main (){
        int n = 223;
    // Get the sum of the
    // digits at odd places
    int sum = sum_odd(n);
    if (check_prime(sum))
        Console.WriteLine("YES" );
    else
            Console.WriteLine("NO");
    }
}

PHP

<?php
// PHP program to do Primality test
// for the sum of digits at odd
// places of a number
 
// Function that return sum
// of the digits at odd places
function sum_odd($n)
{
    $sum = 0;
    $pos = 1;
    while ($n)
    {
        if ($pos % 2 == 1)
            $sum += $n % 10;
        $n = (int)($n / 10);
        $pos++;
    }
    return $sum;
}
 
// Function that returns true
// if the number is prime
// else false
function check_prime($n)
{
    // Corner cases
    if ($n <= 1)
        return false;
    if ($n <= 3)
        return true;
 
    // This condition is checked so
    // that we can skip middle five
    // numbers in the below loop
    if ($n % 2 == 0 || $n % 3 == 0)
        return false;
 
    for ($i = 5; $i * $i <= $n;
                 $i = ($i + 6))
        if ($n % $i == 0 ||
            $n % ($i + 2) == 0)
            return false;
 
    return true;
}
 
// Driver code
$n = 223;
 
// Get the sum of the
// digits at odd places
$sum = sum_odd($n);
 
if (check_prime($sum))
    echo "YES";
else
    echo "NO";
 
// This code is contributed by ajit
?>

Javascript

<script>
 
// JavaScript program to do Primality test
// for the sum of digits at
// odd places of a number
 
 
// Function that return sum
// of the digits at odd places
function sum_odd(n)
{
    let sum = 0, pos = 1;
    while (n) {
        if (pos % 2 == 1)
            sum += n % 10;
        n = Math.floor(n / 10);
        pos++;
    }
    return sum;
}
 
// Function that returns true
// if the number is prime
// else false
function check_prime(n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This condition is checked so that
    // we can skip middle five
    // numbers in the 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;
}
 
// Driver code
 
    let n = 223;
 
    // Get the sum of the
    // digits at odd places
    let sum = sum_odd(n);
 
    if (check_prime(sum))
        document.write("YES" + "<br>");
    else
        document.write("NO" + "<br>");
 
// This code is contributed by Surbhi Tyagi.
 
</script>
Producción: 

YES

 

Complejidad del tiempo: O(log 10 n + sqrt(n))

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

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