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>
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