📜  打印所有小于或等于 N 的素数

📅  最后修改于: 2022-05-13 01:57:59.565000             🧑  作者: Mango

打印所有小于或等于 N 的素数

给定一个数 N,任务是打印所有小于或等于 N 的素数。
例子:

Input: 7
Output: 2, 3, 5, 7

Input: 13
Output: 2, 3, 5, 7, 11, 13 

朴素方法:从 2 迭代到 N,并检查素数。如果是素数,则打印该数字。
下面是上述方法的实现:

C++
// C++ program to print all primes
// less than N
#include 
using namespace std;
 
// function check whether a number
// is prime or not
bool isPrime(int n)
{
    // Corner case
    if (n <= 1)
        return false;
 
    // Check from 2 to n-1
    for (int i = 2; i < n; i++)
        if (n % i == 0)
            return false;
 
    return true;
}
// Function to print primes
void printPrime(int n)
{
    for (int i = 2; i <= n; i++) {
        if (isPrime(i))
            cout << i << " ";
    }
}
// Driver Code
int main()
{
    int n = 7;
    printPrime(n);
}


Python3
# Python3 program to print
# all primes less than N
 
# Function to check whether
# a number is prime or not .
def isPrime(n):
     
    # Corner case
    if n <= 1 :
        return False
 
    # check from 2 to n-1
    for i in range(2, n):
        if n % i == 0:
            return False
 
    return True
 
# Function to print primes
def printPrime(n):
    for i in range(2, n + 1):
        if isPrime(i):
            print(i, end = " ")
 
# Driver code
if __name__ == "__main__" :
    n = 7
    # function calling
    printPrime(n)
     
# This code is contributed
# by Ankit Rai


Java
// Java program to print
// all primes less than N
class GFG
{
// function check whether
// a number is prime or not
static boolean isPrime(int n)
{
// Corner case
if (n <= 1)
    return false;
 
// Check from 2 to n-1
for (int i = 2; i < n; i++)
    if (n % i == 0)
        return false;
 
return true;
}
 
// Function to print primes
static void printPrime(int n)
{
for (int i = 2; i <= n; i++)
{
    if (isPrime(i))
        System.out.print(i + " ");
}
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 7;
    printPrime(n);
}
}
 
// This code is contributed
// by ChitraNayal


C#
// C# program to print
// all primes less than N
using System;
 
class GFG
{
// function check whether
// a number is prime or not
static bool isPrime(int n)
{
     
    // Corner case
    if (n <= 1)
        return false;
     
    // Check from 2 to n-1
    for (int i = 2; i < n; i++)
        if (n % i == 0)
            return false;
     
    return true;
}
     
// Function to print primes
static void printPrime(int n)
{
for (int i = 2; i <= n; i++)
{
    if (isPrime(i))
        Console.Write(i + " ");
}
}
 
// Driver Code
public static void Main()
{
    int n = 7;
    printPrime(n);
}
}
 
// This code is contributed
// by ChitraNayal


PHP


Javascript


C++
// C++ program to print all primes
// less than N
#include 
using namespace std;
 
// function check whether a number
// is prime or not
bool isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so that we can skip
    // middle five numbers in below loop
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for (int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to print primes
void printPrime(int n)
{
    for (int i = 2; i <= n; i++) {
        if (isPrime(i))
            cout << i << " ";
    }
}
// Driver Code
int main()
{
    int n = 7;
    printPrime(n);
}


Java
// Java program to print
// all primes less than N
import java.io.*;
 
class GFG
{
 
// function check
// whether a number
// is prime or not
static boolean isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so
    // that we can skip
    // middle five numbers
    // in below loop
    if (n % 2 == 0 ||
        n % 3 == 0)
        return false;
 
    for (int i = 5;
             i * i <= n; i = i + 6)
        if (n % i == 0 ||
            n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to print primes
static void printPrime(int n)
{
    for (int i = 2; i <= n; i++)
    {
        if (isPrime(i))
            System.out.print(i + " ");
    }
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 7;
    printPrime(n);
}
}
 
// This code is contributed
// by anuj_67.


C#
// C# program to print
// all primes less than N
using System;
 
class GFG
{
 
// function check
// whether a number
// is prime or not
static bool isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so
    // that we can skip
    // middle five numbers
    // in below loop
    if (n % 2 == 0 ||
        n % 3 == 0)
        return false;
 
    for (int i = 5;
             i * i <= n; i = i + 6)
        if (n % i == 0 ||
            n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to print primes
static void printPrime(int n)
{
    for (int i = 2; i <= n; i++)
    {
        if (isPrime(i))
            Console.Write(i + " ");
    }
}
 
// Driver Code
public static void Main ()
{
    int n = 7;
    printPrime(n);
}
}
 
// This code is contributed
// by ChitraNayal


Python3
# function to check if the number is
# prime or not
def isPrime(n) :
    # Corner cases
    if (n <= 1) :
        return False
    if (n <= 3) :
        return True
  
    # This is checked so that we can skip
    # middle five numbers in below loop
    if (n % 2 == 0 or n % 3 == 0) :
        return False
  
    i = 5
    while(i * i <= n) :
        if (n % i == 0 or n % (i + 2) == 0) :
            return False
        i = i + 6
  
    return True
 
# print all prime numbers
# less than equal to N
def printPrime(n):
    for i in range(2, n + 1):
        if isPrime(i):
            print (i, end =" ")
  
n = 7           
printPrime(n)


Javascript


PHP


输出:

2 3 5 7

时间复杂度: O(N * N)
更好的方法是基于一个除数必须小于或等于 √n 的事实。所以我们只检查可分性直到 √n。

C++

// C++ program to print all primes
// less than N
#include 
using namespace std;
 
// function check whether a number
// is prime or not
bool isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so that we can skip
    // middle five numbers in below loop
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for (int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to print primes
void printPrime(int n)
{
    for (int i = 2; i <= n; i++) {
        if (isPrime(i))
            cout << i << " ";
    }
}
// Driver Code
int main()
{
    int n = 7;
    printPrime(n);
}

Java

// Java program to print
// all primes less than N
import java.io.*;
 
class GFG
{
 
// function check
// whether a number
// is prime or not
static boolean isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so
    // that we can skip
    // middle five numbers
    // in below loop
    if (n % 2 == 0 ||
        n % 3 == 0)
        return false;
 
    for (int i = 5;
             i * i <= n; i = i + 6)
        if (n % i == 0 ||
            n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to print primes
static void printPrime(int n)
{
    for (int i = 2; i <= n; i++)
    {
        if (isPrime(i))
            System.out.print(i + " ");
    }
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 7;
    printPrime(n);
}
}
 
// This code is contributed
// by anuj_67.

C#

// C# program to print
// all primes less than N
using System;
 
class GFG
{
 
// function check
// whether a number
// is prime or not
static bool isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so
    // that we can skip
    // middle five numbers
    // in below loop
    if (n % 2 == 0 ||
        n % 3 == 0)
        return false;
 
    for (int i = 5;
             i * i <= n; i = i + 6)
        if (n % i == 0 ||
            n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to print primes
static void printPrime(int n)
{
    for (int i = 2; i <= n; i++)
    {
        if (isPrime(i))
            Console.Write(i + " ");
    }
}
 
// Driver Code
public static void Main ()
{
    int n = 7;
    printPrime(n);
}
}
 
// This code is contributed
// by ChitraNayal

Python3

# function to check if the number is
# prime or not
def isPrime(n) :
    # Corner cases
    if (n <= 1) :
        return False
    if (n <= 3) :
        return True
  
    # This is checked so that we can skip
    # middle five numbers in below loop
    if (n % 2 == 0 or n % 3 == 0) :
        return False
  
    i = 5
    while(i * i <= n) :
        if (n % i == 0 or n % (i + 2) == 0) :
            return False
        i = i + 6
  
    return True
 
# print all prime numbers
# less than equal to N
def printPrime(n):
    for i in range(2, n + 1):
        if isPrime(i):
            print (i, end =" ")
  
n = 7           
printPrime(n)

Javascript


PHP


输出:
2 3 5 7

时间复杂度: O(N 3/2 )
最好的解决方案是使用埃拉托色尼筛。时间复杂度为 O(N * loglog(N))