Compruebe si el número N dado es un número de Moran o no

Dado un número entero N , compruebe si el número dado es un número de Moran o no. Los números de Moran son un subconjunto de los números de Harshad .
 

Un número N es un número de Moran si N dividido por la suma de sus dígitos da un número primo . Por ejemplo, algunos números de Moran son 18, 21, 27, 42, 45, etc.

Ejemplos: 
 

Entrada: N = 34 
Salida: No 
Explicación: 
34 no es un número moran porque no es completamente divisible 7 (suma de sus dígitos).
Entrada: N = 21 
Salida: Sí 
Explicación: 
21 es un número moran porque 21 dividido por la suma de sus dígitos da un número primo. 
 

Planteamiento: Para resolver el problema mencionado anteriormente tenemos que encontrar la suma de los dígitos de ese número. Luego encuentre el cociente dividiendo el número por la suma de sus dígitos y verifique si el cociente es un número primo, entonces el número dado es un Número de Moran.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation to check if
// the number is Moran number
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate digit sum
int digSum(int a)
{
    int sum = 0;
    while (a) {
        sum += a % 10;
        a = a / 10;
    }
    return sum;
}
 
// Function to check if number is prime
bool isPrime(int r)
{
    bool s = true;
 
    for (int i = 2; i * i <= r; i++) {
        if (r % i == 0) {
            s = false;
            break;
        }
    }
    return s;
}
 
// Function to check if
// number is moran number
void moranNo(int n)
{
    int dup = n;
 
    // Calculate digit sum
    int sum = digSum(dup);
 
    // Check if n is completely
    // divisible by digit sum
    if (n % sum == 0) {
 
        // Calculate the quotient
        int c = n / sum;
 
        // Check if the number is prime
        if (isPrime(c)) {
            cout << "Yes";
            return;
        }
    }
 
    cout << "No" << endl;
}
 
// Driver code
int main()
{
    int n = 21;
 
    moranNo(n);
 
    return 0;
}

Java

// Java implementation to check if
// the number is Moran number
import java.util.*;
import java.lang.*;
class GFG{
 
// Function to calculate digit sum
static int digSum(int a)
{
    int sum = 0;
    while (a != 0)
    {
        sum += a % 10;
        a = a / 10;
    }
    return sum;
}
 
// Function to check if number is prime
static boolean isPrime(int r)
{
    boolean s = true;
 
    for (int i = 2; i * i <= r; i++)
    {
        if (r % i == 0)
        {
            s = false;
            break;
        }
    }
    return s;
}
 
// Function to check if
// number is moran number
static void moranNo(int n)
{
    int dup = n;
 
    // Calculate digit sum
    int sum = digSum(dup);
 
    // Check if n is completely
    // divisible by digit sum
    if (n % sum == 0)
    {
 
        // Calculate the quotient
        int c = n / sum;
 
        // Check if the number is prime
        if (isPrime(c))
        {
            System.out.println("Yes");
            return;
        }
    }
    System.out.println("No");
}
 
// Driver code
public static void main(String[] args)
{
    int n = 21;
 
    moranNo(n);
}
}
 
// This code is contributed by offbeat

Python3

# Python3 implementation to check if
# the number is Moran number
 
# Function to calculate digit sum
def digSum(a):
 
    _sum = 0
 
    while (a):
        _sum += a % 10
        a = a // 10
 
    return _sum
 
# Function to check if number is prime
def isPrime(r):
 
    s = True
    i = 2
     
    while i * i <= r:
        if (r % i == 0):
            s = False
            break
        i += 1
     
    return s
 
# Function to check if
# number is moran number
def moranNo(n):
 
    dup = n
 
    # Calculate digit sum
    _sum = digSum(dup)
 
    # Check if n is completely
    # divisible by digit sum
    if (n % _sum == 0):
 
        # Calculate the quotient
        c = n // _sum
 
        # Check if the number is prime
        if (isPrime(c)):
            print("Yes")
            return
 
    print("No")
 
# Driver code
n = 21
 
moranNo(n)
 
# This code is contributed by divyamohan123

C#

// C# implementation to check if
// the number is Moran number
using System;
 
class GFG{
 
// Function to calculate digit sum
static int digSum(int a)
{
    int sum = 0;
    while (a != 0)
    {
        sum += a % 10;
        a = a / 10;
    }
    return sum;
}
 
// Function to check if number is prime
static bool isPrime(int r)
{
    bool s = true;
 
    for(int i = 2; i * i <= r; i++)
    {
       if (r % i == 0)
       {
           s = false;
           break;
       }
    }
    return s;
}
 
// Function to check if
// number is moran number
static void moranNo(int n)
{
    int dup = n;
 
    // Calculate digit sum
    int sum = digSum(dup);
 
    // Check if n is completely
    // divisible by digit sum
    if (n % sum == 0)
    {
 
        // Calculate the quotient
        int c = n / sum;
 
        // Check if the number is prime
        if (isPrime(c))
        {
            Console.Write("Yes");
            return;
        }
    }
    Console.Write("No");
}
 
// Driver code
public static void Main()
{
    int n = 21;
 
    moranNo(n);
}
}
 
// This code is contributed by Code_Mech

Javascript

<script>
 
// Javascript implementation to check if
// the number is Moran number
 
// Function to calculate digit sum
function digSum(a)
{
    let sum = 0;
    while (a) {
        sum += a % 10;
        a = Math.floor(a / 10);
    }
    return sum;
}
 
// Function to check if number is prime
function isPrime(r)
{
    let s = true;
 
    for (let i = 2; i * i <= r; i++) {
        if (r % i == 0) {
            s = false;
            break;
        }
    }
    return s;
}
 
// Function to check if
// number is moran number
function moranNo(n)
{
    let dup = n;
 
    // Calculate digit sum
    let sum = digSum(dup);
 
    // Check if n is completely
    // divisible by digit sum
    if (n % sum == 0) {
 
        // Calculate the quotient
        let c = n / sum;
 
        // Check if the number is prime
        if (isPrime(c)) {
            document.write("Yes");
            return;
        }
    }
 
    document.write("No" + "<br>");
}
 
// Driver code
 
    let n = 21;
 
    moranNo(n);
 
 
// This code is contributed by Mayank Tyagi
 
</script>
Producción: 

Yes

 

Complejidad del tiempo: O(sqrt(n))

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

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