打印所有小于或等于 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))