Dado un número N, imprime todos los números primos menores o iguales a N en orden inverso.
Por ejemplo, si N es 9, la salida debería ser «7, 5, 3, 2».
Ejemplos:
Input : N = 5 Output : 5 3 2 Input : N = 20 Output : 19 17 13 11 7 5 3 2
Una solución simple es atravesar de N a 1. Para cada número, verifique si es primo usando el método de la escuela para verificar si es primo . Imprime el número si es primo.
Una solución eficiente es utilizar Tamiz de Eratóstenes . Encontramos eficientemente todos los números del 1 al N, luego los imprimimos.
C++
// C++ program to print all primes between 1 // to N in reverse order using Sieve of // Eratosthenes #include <bits/stdc++.h> using namespace std; void Reverseorder(int 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. bool prime[n + 1]; memset(prime, true, sizeof(prime)); for (int p = 2; p * p <= n; p++) { // If prime[p] is not changed, then // it is a prime if (prime[p] == true) { // Update all multiples of p for (int i = p * 2; i <= n; i += p) prime[i] = false; } } // Print all prime numbers in reverse order for (int p = n; p >= 2; p--) if (prime[p]) cout << p << " "; } // Driver Program int main() { // static input int N = 25; // to display cout << "Prime number in reverse order" << endl; if (N == 1) cout << "No prime no exist in this range"; else Reverseorder(N); // calling the function return 0; }
Java
// Java program to print all primes between 1 // to N in reverse order using Sieve of // Eratosthenes import java.io.*; import java.util.*; class GFG { static void reverseorder(int 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. boolean prime[] = new boolean[n + 1]; for (int i = 0; i < n; i++) prime[i] = true; for (int p = 2; p * p <= n; p++) { // If prime[p] is not changed, then // it is a prime if (prime[p] == true) { // Update all multiples of p for (int i = p * 2; i <= n; i += p) prime[i] = false; } } // Print all prime numbers for (int i = n; i >= 2; i--) if (prime[i] == true) System.out.print(i + " "); } // Driver Program to test above function public static void main(String args[]) { // static input int N = 25; // To display System.out.println("Prime number in reverse order"); if (N == 1) System.out.println("No prime no exist in this range"); else reverseorder(N); // calling the function } }
Python3
# Python3 program to print all primes # between 1 to N in reverse order # using Sieve of Eratosthenes def Reverseorder(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] == True): # Update all multiples of p for i in range((p * 2), (n + 1), p): prime[i] = False; p += 1; # Print all prime numbers in # reverse order for p in range(n, 1, -1): if (prime[p]): print(p, end = " "); # Driver Code # static input N = 25; # to display print("Prime number in reverse order"); if (N == 1): print("No prime no exist in this range"); else: Reverseorder(N); # calling the function # This code is contributed by mits
C#
// C# program to print all primes between 1 // to N in reverse order using Sieve of // Eratosthenes using System; class GFG { static void reverseorder(int 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. bool []prime = new bool[n + 1]; for (int i = 0; i < n; i++) prime[i] = true; for (int p = 2; p * p <= n; p++) { // If prime[p] is not changed, // then it is a prime if (prime[p] == true) { // Update all multiples of p for (int i = p * 2; i <= n; i += p) prime[i] = false; } } // Print all prime numbers for (int i = n; i >= 2; i--) if (prime[i] == true) Console.Write(i + " "); } // Driver code public static void Main() { // static input int N = 25; // To display Console.WriteLine("Prime number in" + " reverse order"); if (N == 1) Console.WriteLine("No prime no" + " exist in this range"); else // calling the function reverseorder(N); } } // This code is contributed by Sam007.
PHP
<?php // PHP program to print all primes // between 1 to N in reverse order // using Sieve of Eratosthenes function Reverseorder($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 = array_fill(0, $n + 1, true); for ($p = 2; $p * $p <= $n; $p++) { // If prime[p] is not changed, // then it is a prime if ($prime[$p] == true) { // Update all multiples of p for ($i = $p * 2; $i <= $n; $i += $p) $prime[$i] = false; } } // Print all prime numbers in // reverse order for ($p = $n; $p >= 2; $p--) if ($prime[$p]) echo $p." "; } // Driver Code // static input $N = 25; // to display echo "Prime number in reverse order\n"; if ($N == 1) echo "No prime no exist in this range"; else Reverseorder($N); // calling the function // This code is contributed by mits ?>
Javascript
<script> // Javascript program to print all primes between 1 // to N in reverse order using Sieve of // Eratosthenes function Reverseorder( 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. let prime = new Array(n + 1); for (let i = 0; i < n; i++) prime[i] = true; for (let p = 2; p * p <= n; p++) { // If prime[p] is not changed, then // it is a prime if (prime[p] == true) { // Update all multiples of p for (let i = p * 2; i <= n; i += p) prime[i] = false; } } // Print all prime numbers in reverse order for (let p = n; p >= 2; p--) if (prime[p]) document.write(p + " "); } // Driver Code // static input let N = 25; // to display document.write("Prime number in reverse order" + "</br>"); if (N == 1) document.write("No prime no exist in this range"); else Reverseorder(N); // calling the function </script>
Producción:
Prime number in reverse order 23 19 17 13 11 7 5 3 2
Publicación traducida automáticamente
Artículo escrito por Manish_100 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA