Los números primos de Woodall son números primos que también son números de Woodall .
Encuentra los números primos de Woodall menores que N
Dado un número N , imprima todos los números primos de Woodall menores o iguales que N.
Ejemplos:
Entrada: N = 10
Salida: 7
Entrada: N = 500
Salida: 7, 23, 383
Planteamiento: La idea es utilizar la Criba de Eratóstenes para comprobar que un número es primo o no de manera eficiente. Luego, itere sobre números enteros de 1 a N, y para cada número verifique si es primo o no y si es un número de Woodall o no. Si un número es primo también un número de Woodall , entonces es un número primo de Woodall.
A continuación se muestra la implementación del algoritmo anterior:
Python3
# Python3 implementation to print all Woodall # primes smaller than or equal to n. # Function to check if a number # N is Woodall def isWoodall(x) : # If number is even, return false. if (x % 2 == 0) : return False # If x is 1, return true. if (x == 1) : return True x = x + 1 # Add 1 to make x even # While x is divisible by 2 p = 0 while (x % 2 == 0) : # Divide x by 2 x = x / 2 # Count the power p = p + 1 # If at any point power and # x became equal, return true. if (p == x) : return True return False # Function to generate all primes and checking # whether number is Woodall or not def printWoodallPrimesLessThanN(n): # Create a boolean array "prime[0..n]" and # initialize all entries it as true. A value # in prime[i] will finally be false if i is # Not a prime, else true. prime = [True] * (n + 1); p = 2; while (p * p <= n): # If prime[p] is not changed, # then it is a prime if (prime[p]): # Update all multiples of p for i in range(p * 2, n + 1, p): prime[i] = False; p += 1; # Print all Woodall prime numbers for p in range(2, n + 1): # checking whether the given number # is prime Woodall or not if (prime[p] and isWoodall(p)): print(p, end = " "); # Driver Code n = 1000; printWoodallPrimesLessThanN(n)
7 23 383
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA