Programa para encontrar números primos entre intervalos dados

Dados dos números a y b como rango de intervalo, la tarea es encontrar los números primos entre este intervalo.

Ejemplos: 

Input : a = 1, b = 10
Output : 2, 3, 5, 7

Input : a = 10, b = 20
Output : 11, 13, 17, 19

En el siguiente programa, el rango de números se toma como entrada y se almacena en las variables ‘a’ y ‘b’. Luego, usando for-loop, se recorren los números entre el intervalo de a y b. Para cada número en el bucle for, se comprueba si este número es primo o no. Si encuentra primo, imprima el número. Luego se verifica el siguiente número en el bucle, hasta que se verifiquen todos los números.

Programa: 

C++

// C++ program to find the prime numbers
// between a given interval
 
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    // Declare the variables
    int a, b, i, j, flag;
 
    // Ask user to enter lower value of interval
    cout << "Enter lower bound of the interval: ";
    cin >> a; // Take input
 
    // Ask user to enter upper value of interval
    cout << "\nEnter upper bound of the interval: ";
    cin >> b; // Take input
 
    // Print display message
    cout << "\nPrime numbers between "
         << a << " and " << b << " are: ";
 
    // Traverse each number in the interval
    // with the help of for loop
    for (i = a; i <= b; i++) {
        // Skip 0 and 1 as they are
        // neither prime nor composite
        if (i == 1 || i == 0)
            continue;
 
        // flag variable to tell
        // if i is prime or not
        flag = 1;
 
        for (j = 2; j <= i / 2; ++j) {
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
 
        // flag = 1 means i is prime
        // and flag = 0 means i is not prime
        if (flag == 1)
            cout << i << " ";
    }
 
    return 0;
}
 
// This code is contributed by Akanksha Rai

C

// C program to find the prime numbers
// between a given interval
 
#include <stdio.h>
 
int main()
{
    // Declare the variables
    int a, b, i, j, flag;
 
    // Ask user to enter lower value of interval
    printf("Enter lower bound of the interval: ");
    scanf("%d", &a); // Take input
 
    // Ask user to enter upper value of interval
    printf("\nEnter upper bound of the interval: ");
    scanf("%d", &b); // Take input
 
    // Print display message
    printf("\nPrime numbers between %d and %d are: ", a, b);
 
    // Traverse each number in the interval
    // with the help of for loop
    for (i = a; i <= b; i++) {
        // Skip 0 and 1 as they are
        // neither prime nor composite
        if (i == 1 || i == 0)
            continue;
 
        // flag variable to tell
        // if i is prime or not
        flag = 1;
 
        for (j = 2; j <= i / 2; ++j) {
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
 
        // flag = 1 means i is prime
        // and flag = 0 means i is not prime
        if (flag == 1)
            printf("%d ", i);
    }
 
    return 0;
}

Java

import java.util.Scanner;
 
// Java program to find the prime numbers
// between a given interval
public class GFG {
 
    // driver code
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        // Declare the variables
        int a, b, i, j, flag;
 
        // Ask user to enter lower value of interval
        System.out.printf("Enter lower bound of the interval: ");
        a = sc.nextInt(); // Take input
 
        // Ask user to enter upper value of interval
        System.out.printf("\nEnter upper bound of the interval: ");
        b = sc.nextInt(); // Take input
 
        // Print display message
        System.out.printf("\nPrime numbers between %d and %d are: ", a, b);
 
        // Traverse each number in the interval
        // with the help of for loop
        for (i = a; i <= b; i++) {
 
            // Skip 0 and 1 as they are
            // neither prime nor composite
            if (i == 1 || i == 0)
                continue;
 
            // flag variable to tell
            // if i is prime or not
            flag = 1;
 
            for (j = 2; j <= i / 2; ++j) {
                if (i % j == 0) {
                    flag = 0;
                    break;
                }
            }
 
            // flag = 1 means i is prime
            // and flag = 0 means i is not prime
            if (flag == 1)
                System.out.println(i);
        }
    }
}

Python3

# Python3 program to find the prime
# numbers between a given interval
 
if __name__ == '__main__':
     
    # Declare the variables
    a, b, i, j, flag = 0, 0, 0, 0, 0
 
    # Ask user to enter lower value of interval
    print("Enter lower bound of the interval:",
                                      end = "")
    a = int(input()) # Take input
    print(a)
     
    # Ask user to enter upper value of interval
    print("Enter upper bound of the interval:",
                                      end = "")
    b = int(input()) # Take input
    print(b)
     
    # Print display message
    print("Prime numbers between", a, "and",
                        b, "are:", end = "")
 
    # Traverse each number in the interval
    # with the help of for loop
    for i in range(a, b + 1):
 
        # Skip 1 as1 is neither
        # prime nor composite
        if (i == 1):
            continue
 
        # flag variable to tell
        # if i is prime or not
        flag = 1
         
        for j in range(2, i // 2 + 1):
            if (i % j == 0):
                flag = 0
                break
             
        # flag = 1 means i is prime
        # and flag = 0 means i is not prime
        if (flag == 1):
            print(i, end = " ")
             
# This code is contributed
# by Mohit kumar 29

C#

// C# program to find the prime numbers
// between a given interval
using System;
 
class GFG{
 
// Driver code   
public static void Main(string[] args)
{
     
    // Declare the variables
    int a, b, i, j, flag;
 
    // Ask user to enter lower value of interval
    Console.WriteLine("Enter lower bound of " +
                      "the interval: ");
                       
    // Take input
    a = int.Parse(Console.ReadLine());
 
    // Ask user to enter upper value of interval
    Console.WriteLine("\nEnter upper bound " +
                      "of the interval: ");
                       
    // Take input
    b = int.Parse(Console.ReadLine());
 
    // Print display message
    Console.WriteLine("\nPrime numbers between " + 
                      "{0} and {1} are: ", a, b);
 
    // Traverse each number in the interval
    // with the help of for loop
    for(i = a; i <= b; i++)
    {
         
        // Skip 0 and 1 as they are
        // neither prime nor composite
        if (i == 1 || i == 0)
            continue;
 
        // flag variable to tell
        // if i is prime or not
        flag = 1;
 
        for(j = 2; j <= i / 2; ++j)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
 
        // flag = 1 means i is prime
        // and flag = 0 means i is not prime
        if (flag == 1)
            Console.WriteLine(i);
    }
}
}
 
// This code is contributed by jana_sayantan

Javascript

<script>
 
// JavaScript program to find the prime numbers
// between a given interval
 
// driver code
    // Declare the variables
    let a, b, i, j, flag;
 
    // Ask user to enter lower value of interval and take input
    a = window.prompt("Enter lower bound of the interval: ");
 
    // Ask user to enter upper value of interval and take input
    b = window.prompt("Enter upper bound of the interval: ");
 
    // Print display message
    console.log("Prime numbers between " + a + " and " + b << " are: ");
 
    // Traverse each number in the interval
    // with the help of for loop
    for (i = a; i <= b; i++) {
        // Skip 0 and 1 as they are
        // neither prime nor composite
        if (i == 1 || i == 0)
            continue;
 
        // flag variable to tell
        // if i is prime or not
        flag = 1;
 
        for (j = 2; j <= i / 2; ++j) {
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
 
        // flag = 1 means i is prime
        // and flag = 0 means i is not prime
        if (flag == 1)
            document.write(i," ");
    }
 
// This code is contributed by shinjanpatra
 
</script>

Producción: 
 

Enter lower bound of the interval: 1
Enter upper bound of the interval: 10
Prime numbers between 1 and 10 are: 2 3 5 7 

Solución optimizada: 
la idea es utilizar el hecho de que los números pares (excepto el 2) no son primos.

C++

// C++ program to find the prime numbers
// between a given interval
 
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    // Declare the variables
    int a, b, i, j;
 
    // Ask user to enter lower value of interval please not
    // interval < 0 cannot be prime numbers
    cout << "Enter lower bound of the interval: ";
    cin >> a; // Take input
 
    // Ask user to enter upper value of interval
    cout << "\nEnter upper bound of the interval: ";
    cin >> b; // Take input
 
    // Print display message
    cout << "\nPrime numbers between " << a << " and " << b
         << " are: ";
 
    // Explicitly handling the cases when a is less than 2
    // since 0 and 1 are not prime numbers
    if (a <= 2) {
        a = 2;
        if (b >= 2) {
            cout << a << " ";
            a++;
        }
    }
 
    // MAKING SURE THAT a IS ODD BEFORE WE BEGIN
    // THE LOOP
    if (a % 2 == 0)
        a++;
 
    // NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY
    for (i = a; i <= b; i = i + 2) {
 
        // flag variable to tell
        // if i is prime or not
        bool flag = 1;
 
        // WE TRAVERSE TILL SQUARE ROOT OF j only.
        // (LARGEST POSSIBLE VALUE OF A PRIME FACTOR)
        for (j = 2; j * j <= i; ++j) {
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
 
        // flag = 1 means i is prime
        // and flag = 0 means i is not prime
       
        if (flag == 1){
          if(i==1)
            continue;
          else
            cout << i << " ";
        }
    }
 
    return 0;
}

Java

import java.util.*;
 
public class PrimeNumbersInRange {
 
    // function which checks whether a number is Prime or Not
    // If the number is prime, it returns true. Else, it returns false.
    public static boolean isPrime(int n) {
        // 0 and 1 are neither prime nor composite numbers
        if (n == 0 || n == 1) {
            return false;
        }
        // 2 is a prime number
        if (n == 2) {
            return true;
        }
        // every composite number has a prime factor
        // less than or equal to its square root.
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
 
    }
 
    // Driver code
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        // Ask user to enter lower value of interval
        System.out.print("Enter lower bound of the interval: ");
        int lower = sc.nextInt(); // Take input
 
        // Ask user to enter upper value of interval
        System.out.print("\nEnter upper bound of the interval: ");
        int upper = sc.nextInt(); // Take input
 
        // Print display message
        System.out.printf("\nPrime numbers between %d and %d are: ", lower, upper);
 
        for (int i = lower; i <= upper; i++) {
            if (isPrime(i)) {
                System.out.print(i + " ");
            }
        }
        sc.close();
    }
}

Python3

# Python3 program to find the prime
# numbers between a given interval
  
if __name__ == '__main__':
     
    # Declare the variables
    a, b, i, j = 0, 0, 0, 0
     
    # Ask user to enter lower value of interval
    print("Enter lower bound of the interval:",end = "")
     
    a = int(input()) # Take input
    print(a)
     
    # Ask user to enter upper value of interval
    print("Enter upper bound of the interval:",end = "")
     
    b = int(input()) # Take input
    print(b)
     
    # Print display message
    print("Prime numbers between", a, "and",b, "are:", end = "")
     
     
    # Explicitly handling the cases when a is less than 2
    if (a == 1):
        print(a,end=" ")
        a+=1
        if (b >= 2):
            print(a,end=" ")
            a+=1
    if (a == 2):
        print(a,end=" ")
     
    # MAKING SURE THAT a IS ODD BEFORE WE BEGIN
    # THE LOOP
    if (a % 2 == 0):
        a+=1
    # NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY
    for i in range(a,b+1,2):
         
        # flag variable to tell
        # if i is prime or not
        flag = 1
        # WE TRAVERSE TILL SQUARE ROOT OF j only.
        # (LARGEST POSSIBLE VALUE OF A PRIME FACTOR)
        j = 2
        while(j * j <= i):
            if (i % j == 0):
                flag = 0
                break
            j+=1
         
        # flag = 1 means i is prime
        # and flag = 0 means i is not prime
        if (flag == 1):
            print(i,end=" ")
 
# This code is contributed by shubhamsingh10

C#

// C# program to find the prime numbers
// between a given interval
using System;
class GFG
{
  // Driver code
  static public void Main()
  {
 
    // Declare the variables
    int a, b, i, j, flag;
 
    // Ask user to enter lower value of interval
    Console.Write(
      "Enter lower bound of the interval: ");
    a = Convert.ToInt32(
      Console.ReadLine()); // Take input
 
    // Ask user to enter upper value of interval
    Console.Write(
      "\nEnter upper bound of the interval: ");
    b = Convert.ToInt32(
      Console.ReadLine()); // Take input
 
    // Print display message
    Console.Write("\nPrime numbers between " + a
                  + " and " + b + " are: ");
 
    // Explicitly handling the cases when a is less than
    // 2
    if (a == 1)
    {
      Console.Write(a + " ");
      a++;
      if (b >= 2)
      {
        Console.Write(a + " ");
        a++;
      }
    }
    if (a == 2)
    {
      Console.Write(a + " ");
    }
 
    // MAKING SURE THAT a IS ODD BEFORE WE BEGIN
    // THE LOOP
    if (a % 2 == 0)
    {
      a++;
    }
 
    // NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY
    for (i = a; i <= b; i = i + 2)
    {
 
      // flag variable to tell
      // if i is prime or not
      flag = 1;
 
      // WE TRAVERSE TILL SQUARE ROOT OF j only.
      // (LARGEST POSSIBLE VALUE OF A PRIME FACTOR)
      for (j = 2; j * j <= i; ++j)
      {
        if (i % j == 0)
        {
          flag = 0;
          break;
        }
      }
 
      // flag = 1 means i is prime
      // and flag = 0 means i is not prime
      if (flag == 1)
      {
        Console.Write(i + " ");
      }
    }
  }
}
 
// This code is contributed by rag2127

Javascript

<script>
 
// JavaScript program to find the prime numbers
// between a given interval
 
// driver code
    // Declare the variables
    let a, b, i, j;
 
    // Ask user to enter lower value of interval and take input
    a = window.prompt("Enter lower bound of the interval: ");
 
    // Ask user to enter upper value of interval and take input
    b = window.prompt("Enter upper bound of the interval: ");
 
    // Print display message
    console.log("Prime numbers between " + a + " and " + b << " are: ");
 
    // Explicitly handling the cases when a is less than 2
    // since 0 and 1 are not prime numbers
    if (a <= 2)
    {
        a = 2;
        if (b >= 2)
        {
            document.write(a," ");
            a++;
        }
    }
 
    // MAKING SURE THAT a IS ODD BEFORE WE BEGIN
    // THE LOOP
    if (a % 2 == 0)
        a++;
 
    // NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY
    for (i = a; i <= b; i = i + 2) {
 
        // flag variable to tell
        // if i is prime or not
        let flag = 1;
 
        // WE TRAVERSE TILL SQUARE ROOT OF j only.
        // (LARGEST POSSIBLE VALUE OF A PRIME FACTOR)
        for (j = 2; j * j <= i; ++j) {
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
 
        // flag = 1 means i is prime
        // and flag = 0 means i is not prime
       
        if (flag == 1){
          if(i == 1)  continue;
          else
            document.write(i, " ");
        }
    }
 
// This code is contributed by shinjanpatra
</script>

Producción: 
 

Enter lower bound of the interval: 1

Enter upper bound of the interval: 10

Prime numbers between 1 and 10 are: 2 3 5 7

Publicación traducida automáticamente

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