Newman–Shanks–Williams prime
In mathematics, a Newman–Shanks–Williams prime (NSW prime) is a prime number p which can be written in the form:
The recurrence relation for Newman–Shanks–Williams prime is
The first few terms of the sequence are 1, 1, 3, 7, 17, 41, 99,…
Examples:
Input : n = 3
Output : 7
Input : n = 4
Output : 17
Below is the implementation of finding nth Newman–Shanks–Williams prime:
C++
#include <bits/stdc++.h>
using namespace std;
int nswp( int n)
{
if (n == 0 || n == 1)
return 1;
return 2 * nswp(n - 1) + nswp(n - 2);
}
int main()
{
int n = 3;
cout << nswp(n) << endl;
return 0;
}
|
Java
import java.io.*;
class GFG
{
static int nswp( int n)
{
if (n == 0 || n == 1 )
return 1 ;
return 2 * nswp(n - 1 ) + nswp(n - 2 );
}
public static void main (String[] args)
{
int n = 3 ;
System.out.println(nswp(n));
}
}
|
Python3
def nswp(n):
if n = = 0 or n = = 1 :
return 1
return 2 * nswp(n - 1 ) + nswp(n - 2 )
n = 3
print (nswp(n))
|
C#
using System;
class GFG {
static int nswp( int n)
{
if (n == 0 || n == 1)
return 1;
return 2 * nswp(n - 1) + nswp(n - 2);
}
public static void Main()
{
int n = 3;
Console.WriteLine(nswp(n));
}
}
|
PHP
<?php
function nswp( $n )
{
if ( $n == 0 || $n == 1)
return 1;
return 2 * nswp( $n - 1) +
nswp( $n - 2);
}
$n = 3;
echo (nswp( $n ));
?>
|
Javascript
<script>
function nswp(n)
{
if (n == 0 || n == 1)
return 1;
return 2 * nswp(n - 1) + nswp(n - 2);
}
let n = 3;
document.write(nswp(n));
</script>
|
Time Complexity: O(2n)
Auxiliary Space: O(1)
Below is the Dynamic Programming solution of finding nth Newman–Shanks–Williams prime:
C++
#include <bits/stdc++.h>
using namespace std;
int nswp( int n)
{
int dp[n + 1];
dp[0] = dp[1] = 1;
for ( int i = 2; i <= n; i++)
dp[i] = 2 * dp[i - 1] + dp[i - 2];
return dp[n];
}
int main()
{
int n = 3;
cout << nswp(n) << endl;
return 0;
}
|
Java
import java.util.*;
class GFG
{
public static int nswpn( int n)
{
int dp[] = new int [n + 1 ];
dp[ 0 ] = dp[ 1 ] = 1 ;
for ( int i = 2 ; i <= n; i++)
dp[i] = 2 * dp[i - 1 ] + dp[i - 2 ];
return dp[n];
}
public static void main (String[] args) {
int n = 3 ;
System.out.println(nswpn(n));
}
}
|
Python3
def nswp(n):
dp = [ 1 for x in range (n + 1 )];
for i in range ( 2 , n + 1 ):
dp[i] = ( 2 * dp[i - 1 ] +
dp[i - 2 ]);
return dp[n];
n = 3 ;
print (nswp(n));
|
C#
using System;
class GFG {
static int nswp( int n)
{
int [] dp = new int [n + 1];
dp[0] = dp[1] = 1;
for ( int i = 2; i <= n; i++)
dp[i] = 2 * dp[i - 1] + dp[i - 2];
return dp[n];
}
public static void Main()
{
int n = 3;
Console.WriteLine(nswp(n));
}
}
|
PHP
<?php
function nswp( $n )
{
$dp [0] = $dp [1] = 1;
for ( $i = 2; $i <= $n ; $i ++)
$dp [ $i ] = 2 * $dp [ $i - 1] +
$dp [ $i - 2];
return $dp [ $n ];
}
$n = 3;
echo (nswp( $n ));
?>
|
Javascript
<script>
function nswp(n)
{
let dp = new Array(n + 1);
dp[0] = dp[1] = 1;
for (let i = 2; i <= n; i++)
dp[i] = 2 * dp[i - 1] + dp[i - 2];
return dp[n];
}
let n = 3;
document.write(nswp(n));
</script>
|
Time Complexity: O(n)
Auxiliary Space: O(n)
Below is the code with O(1) space complexity
C++
#include <iostream>
using namespace std;
int nswp( int n)
{
if (n == 0 || n == 1)
{
return 1;
}
int a = 1, b = 1;
for ( int i = 2; i <= n; ++i)
{
int c = 2 * b + a;
a = b;
b = c;
}
return b;
}
int main()
{
int n = 3;
cout << nswp(n);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int nswp( int n)
{
if (n == 0 || n == 1 )
return 1 ;
int a = 1 , b = 1 ;
for ( int i = 2 ; i <= n; ++i) {
int c = 2 * b + a;
a = b;
b = c;
}
return b;
}
public static void main(String[] args)
{
int n = 3 ;
System.out.println(nswp(n));
}
}
|
Python3
def nswp(n):
if (n< 2 ): return 1
a,b = 1 , 1
for i in range ( 2 ,n + 1 ):
c = 2 * b + a
a = b
b = c
return b
n = 3
print (nswp(n))
|
C#
using System;
class GFG
{
static int nswp( int n) {
if (n == 0 || n == 1)
return 1;
int a = 1, b = 1;
for ( int i = 2; i <= n; ++i) {
int c = 2 * b + a;
a = b;
b = c;
}
return b;
}
public static void Main(String[] args)
{
int n = 3;
Console.WriteLine(nswp(n));
}
}
|
Javascript
<script>
function nswp(n) {
if (n == 0 || n == 1)
return 1;
let a = 1, b = 1;
for (let i = 2; i <= n; ++i) {
let c = 2 * b + a;
a = b;
b = c;
}
return b;
}
let n = 3;
document.write(nswp(n));
</script>
|
Time Complexity: O(n)
Auxiliary Space: O(1)
Last Updated :
13 Jan, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...