Dados dos números enteros L y R , la tarea es contar el número de números primos completos que están presentes en el rango dado.
Se dice que un número es primo completo si el número en sí es primo y todos sus dígitos también son primos.
Ejemplos:
- 53 es Full Prime porque es primo y todos sus dígitos (5 y 3) también son primos.
- 13 no es primo completo porque tiene un dígito no primo (1 no es primo).
Ejemplos:
Entrada: L = 1, R = 100
Salida: 8
Explicaciones: 2 3 5 7 23 37 53 73 son los números primos completos entre 1 y 100. Por lo tanto, la cuenta es 8.Entrada: L = 200, R = 300
Salida: 5
Explicación: 223 227 233 257 277 son los números primos completos entre 200 y 300. Por lo tanto, la cuenta es 5.
Enfoque: siga los pasos a continuación para resolver el problema:
- Simplemente atraviese el rango de L a R .
- Para cada número i en el rango, verifica si es divisible por cualquier número del rango [2, sqrt(i)] . Si se encuentra que es cierto, entonces no es un número primo. Continúe con el siguiente número.
- De lo contrario, comprueba si todos sus dígitos son primos o no. Si se determina que es cierto, aumente la cuenta .
- Finalmente, después de completar el recorrido del rango, imprima el valor de count .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to check if a // number is prime or not bool isPrime(int num) { if (num <= 1) return false; for (int i = 2; i * i <= num; i++) // If a divisor of n exists if (num % i == 0) return false; return true; } // Function to check if a // number is Full Prime or not bool isFulPrime(int n) { // If n is not a prime if (!isPrime(n)) return false; // Otherwise else { while (n > 0) { // Extract digit int rem = n % 10; // If any digit of n // is non-prime if (!(rem == 2 || rem == 3 || rem == 5 || rem == 7)) return false; n = n / 10; } } return true; } // Function to print count of // Full Primes in a range [L, R] int countFulPrime(int L, int R) { // Stores count of full primes int cnt = 0; for (int i = L; i <= R; i++) { // Check if i is full prime if ((i % 2) != 0 && isFulPrime(i)) { cnt++; } } return cnt; } // Driver Code int main() { int L = 1, R = 100; // Stores count of full primes int ans = 0; if (L < 3) ans++; cout << ans + countFulPrime(L, R); return 0; }
Java
// Java program to implement // the above approach import java.io.*; import java.util.*; class GFG{ // Function to check if a // number is prime or not static boolean isPrime(int num) { if (num <= 1) return false; for(int i = 2; i * i <= num; i++) // If a divisor of n exists if (num % i == 0) return false; return true; } // Function to check if a // number is Full Prime or not static boolean isFulPrime(int n) { // If n is not a prime if (!isPrime(n)) return false; // Otherwise else { while (n > 0) { // Extract digit int rem = n % 10; // If any digit of n // is non-prime if (!(rem == 2 || rem == 3 || rem == 5 || rem == 7)) return false; n = n / 10; } } return true; } // Function to print count of // Full Primes in a range [L, R] static int countFulPrime(int L, int R) { // Stores count of full primes int cnt = 0; for(int i = L; i <= R; i++) { // Check if i is full prime if ((i % 2) != 0 && isFulPrime(i)) { cnt++; } } return cnt; } // Driver Code public static void main (String[] args) { int L = 1, R = 100; // Stores count of full primes int ans = 0; if (L < 3) ans++; System.out.println(ans + countFulPrime(L, R)); } } // This code is contributed by sanjoy_62
Python3
# Python3 program to implement # the above approach # Function to check if a # number is prime or not def isPrime(num): if (num <= 1): return False for i in range(2, num + 1): if i * i > num: break # If a divisor of n exists if (num % i == 0): return False return True # Function to check if a # number is Full Prime or not def isFulPrime(n): # If n is not a prime if (not isPrime(n)): return False # Otherwise else: while (n > 0): # Extract digit rem = n % 10 # If any digit of n # is non-prime if (not (rem == 2 or rem == 3 or rem == 5 or rem == 7)): return False n = n // 10 return True # Function to print count of # Full Primes in a range [L, R] def countFulPrime(L, R): # Stores count of full primes cnt = 0 for i in range(L, R + 1): # Check if i is full prime if ((i % 2) != 0 and isFulPrime(i)): cnt += 1 return cnt # Driver Code if __name__ == '__main__': L = 1 R = 100 # Stores count of full primes ans = 0 if (L < 3): ans += 1 print(ans + countFulPrime(L, R)) # This code is contributed by mohit kumar 29
C#
// C# program to implement // the above approach using System; class GFG{ // Function to check if a // number is prime or not static bool isPrime(int num) { if (num <= 1) return false; for(int i = 2; i * i <= num; i++) // If a divisor of n exists if (num % i == 0) return false; return true; } // Function to check if a // number is Full Prime or not static bool isFulPrime(int n) { // If n is not a prime if (!isPrime(n)) return false; // Otherwise else { while (n > 0) { // Extract digit int rem = n % 10; // If any digit of n // is non-prime if (!(rem == 2 || rem == 3 || rem == 5 || rem == 7)) return false; n = n / 10; } } return true; } // Function to print count of // Full Primes in a range [L, R] static int countFulPrime(int L, int R) { // Stores count of full primes int cnt = 0; for(int i = L; i <= R; i++) { // Check if i is full prime if ((i % 2) != 0 && isFulPrime(i)) { cnt++; } } return cnt; } // Driver Code public static void Main (String[] args) { int L = 1, R = 100; // Stores count of full primes int ans = 0; if (L < 3) ans++; Console.WriteLine(ans + countFulPrime(L, R)); } } // This code is contributed by math_lover
Javascript
<script> // Javascript Program to implement // the above approach // Function to check if a // number is prime or not function isPrime(num) { if (num <= 1) return false; for(let i = 2; i * i <= num; i++) // If a divisor of n exists if (num % i == 0) return false; return true; } // Function to check if a // number is Full Prime or not function isFulPrime(n) { // If n is not a prime if (!isPrime(n)) return false; // Otherwise else { while (n > 0) { // Extract digit let rem = n % 10; // If any digit of n // is non-prime if (!(rem == 2 || rem == 3 || rem == 5 || rem == 7)) return false; n = Math.floor(n / 10); } } return true; } // Function to print count of // Full Primes in a range [L, R] function countFulPrime(L, R) { // Stores count of full primes let cnt = 0; for(let i = L; i <= R; i++) { // Check if i is full prime if ((i % 2) != 0 && isFulPrime(i)) { cnt++; } } return cnt; } // Driver code let L = 1, R = 100; // Stores count of full primes let ans = 0; if (L < 3) ans++; document.write(ans + countFulPrime(L, R)); // This code is contributed by splevel62 </script>
8
Complejidad de Tiempo: O(N 3/2 )
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por dhanajitkapali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA