Skip to main content

Print all sophie germain primes less than n

Here given code implementation process.

import java.util.ArrayList;
// Java program for
// Print all sophie germain primes less than n
public class PrimeNumber
{
	public void eratosthenesSieve(boolean[] prime, int n)
	{
		// Set all element as prime
		for (int i = 0; i <= n; ++i)
		{
			prime[i] = true;
		}
		prime[0] = false;
		prime[1] = false;
		for (int i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				for (int j = i * i; j <= n; j += i)
				{
					prime[j] = false;
				}
			}
		}
	}
	public void sophieGermainPrime(int n)
	{
		if (n < 1)
		{
			return;
		}
		System.out.println("\n  Given n : " + n);
		int k = n + n;
		boolean[] prime = new boolean[k + 1];
		eratosthenesSieve(prime, k);
		int p = 0;
		// Display sophie germain prime (2..n)
		for (int i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				p = (i * 2) + 1;
				if (p <= k && prime[p] != false)
				{
					System.out.print("  " + i);
				}
			}
		}
	}
	public static void main(String[] args)
	{
		PrimeNumber task = new PrimeNumber();
		// Test
		task.sophieGermainPrime(100);
		task.sophieGermainPrime(300);
	}
}

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
// Include header file
#include <iostream>

using namespace std;
// C++ program for
// Print all sophie germain primes less than n
class PrimeNumber
{
	public: void eratosthenesSieve(bool prime[], int n)
	{
		// Set all element as prime
		for (int i = 0; i <= n; ++i)
		{
			prime[i] = true;
		}
		prime[0] = false;
		prime[1] = false;
		for (int i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				for (int j = i *i; j <= n; j += i)
				{
					prime[j] = false;
				}
			}
		}
	}
	void sophieGermainPrime(int n)
	{
		if (n < 1)
		{
			return;
		}
		cout << "\n  Given n : " << n << endl;
		int k = n + n;
		bool prime[k + 1];
		this->eratosthenesSieve(prime, k);
		int p = 0;
		// Display sophie germain prime (2..n)
		for (int i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				p = (i *2) + 1;
				if (p <= k && prime[p] != false)
				{
					cout << "  " << i;
				}
			}
		}
	}
};
int main()
{
	PrimeNumber *task = new PrimeNumber();
	// Test
	task->sophieGermainPrime(100);
	task->sophieGermainPrime(300);
	return 0;
}

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
// Include namespace system
using System;
// Csharp program for
// Print all sophie germain primes less than n
public class PrimeNumber
{
	public void eratosthenesSieve(Boolean[] prime, int n)
	{
		// Set all element as prime
		for (int i = 0; i <= n; ++i)
		{
			prime[i] = true;
		}
		prime[0] = false;
		prime[1] = false;
		for (int i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				for (int j = i * i; j <= n; j += i)
				{
					prime[j] = false;
				}
			}
		}
	}
	public void sophieGermainPrime(int n)
	{
		if (n < 1)
		{
			return;
		}
		Console.WriteLine("\n  Given n : " + n);
		int k = n + n;
		Boolean[] prime = new Boolean[k + 1];
		this.eratosthenesSieve(prime, k);
		int p = 0;
		// Display sophie germain prime (2..n)
		for (int i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				p = (i * 2) + 1;
				if (p <= k && prime[p] != false)
				{
					Console.Write("  " + i);
				}
			}
		}
	}
	public static void Main(String[] args)
	{
		PrimeNumber task = new PrimeNumber();
		// Test
		task.sophieGermainPrime(100);
		task.sophieGermainPrime(300);
	}
}

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
package main
import "fmt"
// Go program for
// Print all sophie germain primes less than n

func eratosthenesSieve(prime[] bool, n int) {
	// Set all element as prime
	for i := 0 ; i <= n ; i++ {
		prime[i] = true
	}
	prime[0] = false
	prime[1] = false
	for i := 2 ; i <= n ; i++ {
		if prime[i] == true {
			for j := i * i ; j <= n ; j += i {
				prime[j] = false
			}
		}
	}
}
func sophieGermainPrime(n int) {
	if n < 1 {
		return
	}
	fmt.Println("\n  Given n : ", n)
	var k int = n + n
	var prime = make([] bool, k + 1)
	eratosthenesSieve(prime, k)
	var p int = 0
	// Display sophie germain prime (2..n)
	for i := 2 ; i <= n ; i++ {
		if prime[i] == true {
			p = (i * 2) + 1
			if p <= k && prime[p] != false {
				fmt.Print("  ", i)
			}
		}
	}
}
func main() {
	
	// Test
	sophieGermainPrime(100)
	sophieGermainPrime(300)
}

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
<?php
// Php program for
// Print all sophie germain primes less than n
class PrimeNumber
{
	public	function eratosthenesSieve(&$prime, $n)
	{
		// Set all element as prime
		$prime[0] = false;
		$prime[1] = false;
		for ($i = 2; $i <= $n; ++$i)
		{
			if ($prime[$i] == true)
			{
				for ($j = $i * $i; $j <= $n; $j += $i)
				{
					$prime[$j] = false;
				}
			}
		}
	}
	public	function sophieGermainPrime($n)
	{
		if ($n < 1)
		{
			return;
		}
		echo("\n  Given n : ".$n.
			"\n");
		$k = $n + $n;
		// Set all element as prime
		$prime = array_fill(0, $k + 1, true);
		$this->eratosthenesSieve($prime, $k);
		$p = 0;
		// Display sophie germain prime (2..n)
		for ($i = 2; $i <= $n; ++$i)
		{
			if ($prime[$i] == true)
			{
				$p = ($i * 2) + 1;
				if ($p <= $k && $prime[$p] != false)
				{
					echo("  ".$i);
				}
			}
		}
	}
}

function main()
{
	$task = new PrimeNumber();
	// Test
	$task->sophieGermainPrime(100);
	$task->sophieGermainPrime(300);
}
main();

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
// Node JS program for
// Print all sophie germain primes less than n
class PrimeNumber
{
	eratosthenesSieve(prime, n)
	{
		// Set all element as prime
		prime[0] = false;
		prime[1] = false;
		for (var i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				for (var j = i * i; j <= n; j += i)
				{
					prime[j] = false;
				}
			}
		}
	}
	sophieGermainPrime(n)
	{
		if (n < 1)
		{
			return;
		}
		console.log("\n  Given n : " + n);
		var k = n + n;
		// Set all element as prime
		var prime = Array(k + 1).fill(true);
		this.eratosthenesSieve(prime, k);
		var p = 0;
		// Display sophie germain prime (2..n)
		for (var i = 2; i <= n; ++i)
		{
			if (prime[i] == true)
			{
				p = (i * 2) + 1;
				if (p <= k && prime[p] != false)
				{
					process.stdout.write("  " + i);
				}
			}
		}
	}
}

function main()
{
	var task = new PrimeNumber();
	// Test
	task.sophieGermainPrime(100);
	task.sophieGermainPrime(300);
}
main();

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
#  Python 3 program for
#  Print all sophie germain primes less than n
class PrimeNumber :
	def eratosthenesSieve(self, prime, n) :
		#  Set all element as prime
		prime[0] = False
		prime[1] = False
		i = 2
		while (i <= n) :
			if (prime[i] == True) :
				j = i * i
				while (j <= n) :
					prime[j] = False
					j += i
				
			
			i += 1
		
	
	def sophieGermainPrime(self, n) :
		if (n < 1) :
			return
		
		print("\n  Given n : ", n)
		k = n + n
		#  Set all element as prime
		prime = [True] * (k + 1)
		self.eratosthenesSieve(prime, k)
		p = 0
		i = 2
		#  Display sophie germain prime (2..n)
		while (i <= n) :
			if (prime[i] == True) :
				p = (i * 2) + 1
				if (p <= k and prime[p] != False) :
					print("  ", i, end = "")
				
			
			i += 1
		
	

def main() :
	task = PrimeNumber()
	#  Test
	task.sophieGermainPrime(100)
	task.sophieGermainPrime(300)

if __name__ == "__main__": main()

Output

  Given n :  100
   2   3   5   11   23   29   41   53   83   89
  Given n :  300
   2   3   5   11   23   29   41   53   83   89   113   131   173   179   191   233   239   251   281   293
#  Ruby program for
#  Print all sophie germain primes less than n
class PrimeNumber 
	def eratosthenesSieve(prime, n) 
		#  Set all element as prime
		prime[0] = false
		prime[1] = false
		i = 2
		while (i <= n) 
			if (prime[i] == true) 
				j = i * i
				while (j <= n) 
					prime[j] = false
					j += i
				end

			end

			i += 1
		end

	end

	def sophieGermainPrime(n) 
		if (n < 1) 
			return
		end

		print("\n  Given n : ", n, "\n")
		k = n + n
		#  Set all element as prime
		prime = Array.new(k + 1) {true}
		self.eratosthenesSieve(prime, k)
		p = 0
		i = 2
		#  Display sophie germain prime (2..n)
		while (i <= n) 
			if (prime[i] == true) 
				p = (i * 2) + 1
				if (p <= k && prime[p] != false) 
					print("  ", i)
				end

			end

			i += 1
		end

	end

end

def main() 
	task = PrimeNumber.new()
	#  Test
	task.sophieGermainPrime(100)
	task.sophieGermainPrime(300)
end

main()

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
// Scala program for
// Print all sophie germain primes less than n
class PrimeNumber()
{
	def eratosthenesSieve(prime: Array[Boolean], n: Int): Unit = {
		// Set all element as prime
		prime(0) = false;
		prime(1) = false;
		var i: Int = 2;
		while (i <= n)
		{
			if (prime(i) == true)
			{
				var j: Int = i * i;
				while (j <= n)
				{
					prime(j) = false;
					j += i;
				}
			}
			i += 1;
		}
	}
	def sophieGermainPrime(n: Int): Unit = {
		if (n < 1)
		{
			return;
		}
		println("\n  Given n : " + n);
		var k: Int = n + n;
		// Set all element as prime
		var prime: Array[Boolean] = Array.fill[Boolean](k + 1)(true);
		eratosthenesSieve(prime, k);
		var p: Int = 0;
		var i: Int = 2;
		// Display sophie germain prime (2..n)
		while (i <= n)
		{
			if (prime(i) == true)
			{
				p = (i * 2) + 1;
				if (p <= k && prime(p) != false)
				{
					print("  " + i);
				}
			}
			i += 1;
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: PrimeNumber = new PrimeNumber();
		// Test
		task.sophieGermainPrime(100);
		task.sophieGermainPrime(300);
	}
}

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293
// Swift 4 program for
// Print all sophie germain primes less than n
class PrimeNumber
{
	func eratosthenesSieve(_ prime: inout[Bool], _ n: Int)
	{
		// Set all element as prime
		prime[0] = false;
		prime[1] = false;
		var i: Int = 2;
		while (i <= n)
		{
			if (prime[i] == true)
			{
				var j: Int = i * i;
				while (j <= n)
				{
					prime[j] = false;
					j += i;
				}
			}
			i += 1;
		}
	}
	func sophieGermainPrime(_ n: Int)
	{
		if (n < 1)
		{
			return;
		}
		print("\n  Given n : ", n);
		let k: Int = n + n;
		// Set all element as prime
		var prime: [Bool] = Array(repeating: true, count: k + 1);
		self.eratosthenesSieve(&prime, k);
		var p: Int = 0;
		var i: Int = 2;
		// Display sophie germain prime (2..n)
		while (i <= n)
		{
			if (prime[i] == true)
			{
				p = (i * 2) + 1;
				if (p <= k && prime[p]  != false)
				{
					print("  ", i, terminator: "");
				}
			}
			i += 1;
		}
	}
}
func main()
{
	let task: PrimeNumber = PrimeNumber();
	// Test
	task.sophieGermainPrime(100);
	task.sophieGermainPrime(300);
}
main();

Output

  Given n :  100
   2   3   5   11   23   29   41   53   83   89
  Given n :  300
   2   3   5   11   23   29   41   53   83   89   113   131   173   179   191   233   239   251   281   293
// Kotlin program for
// Print all sophie germain primes less than n
class PrimeNumber
{
	fun eratosthenesSieve(prime: Array < Boolean > , n: Int): Unit
	{
		// Set all element as prime
		prime[0] = false;
		prime[1] = false;
		var i: Int = 2;
		while (i <= n)
		{
			if (prime[i] == true)
			{
				var j: Int = i * i;
				while (j <= n)
				{
					prime[j] = false;
					j += i;
				}
			}
			i += 1;
		}
	}
	fun sophieGermainPrime(n: Int): Unit
	{
		if (n < 1)
		{
			return;
		}
		println("\n  Given n : " + n);
		val k: Int = n + n;
		// Set all element as prime
		var prime: Array < Boolean > = Array(k + 1)
		{
			true
		};
		this.eratosthenesSieve(prime, k);
		var p: Int ;
		var i: Int = 2;
		// Display sophie germain prime (2..n)
		while (i <= n)
		{
			if (prime[i] == true)
			{
				p = (i * 2) + 1;
				if (p <= k && prime[p] != false)
				{
					print("  " + i);
				}
			}
			i += 1;
		}
	}
}
fun main(args: Array < String > ): Unit
{
	val task: PrimeNumber = PrimeNumber();
	// Test
	task.sophieGermainPrime(100);
	task.sophieGermainPrime(300);
}

Output

  Given n : 100
  2  3  5  11  23  29  41  53  83  89
  Given n : 300
  2  3  5  11  23  29  41  53  83  89  113  131  173  179  191  233  239  251  281  293




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment