Given a number N. The task is to write a program to find the N-th term in the below series:
0, 2, 1, 3, 1, 5, 2, 7, 3, …
Examples:
Input: N = 5 Output: 1 Input: N = 10 Output: 11
When we look carefully at the series, we find that the series is a mixture of 2 series:
- Terms at odd positions in the given series forms fibonacci series.
- Terms at even positions in the given series forms a series of prime numbers.
Now, To solve the above-given problem, first check whether the input number N is even or odd.
- If it is odd, set N=(N/2) + 1(since there are Two series running parallelly) and find the Nth fibonacci number.
- If N is even, simply set N=N/2 and find Nth prime number.
Below is the implementation of above approach:
C++
// CPP program to find N-th term // in the series #include<bits/stdc++.h> #define MAX 1000 using namespace std;
// Function to find Nth Prime Number int NthPrime( int n)
{ int count = 0;
for ( int i = 2; i <= MAX; i++) {
int check = 0;
for ( int j = 2; j <= sqrt (i); j++) {
if (i % j == 0) {
check = 1;
break ;
}
}
if (check == 0)
count++;
if (count == n) {
return i;
break ;
}
}
} // Function to find Nth Fibonacci Number int NthFib( int n)
{ // Declare an array to store
// Fibonacci numbers.
int f[n + 2];
int i;
// 0th and 1st number of the
// series are 0 and 1
f[0] = 0;
f[1] = 1;
for (i = 2; i <= n; i++) {
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
} // Function to find N-th term // in the series void findNthTerm( int n)
{ // If n is even
if (n % 2 == 0) {
n = n / 2;
n = NthPrime(n);
cout << n << endl;
}
// If n is odd
else {
n = (n / 2) + 1;
n = NthFib(n - 1);
cout << n << endl;
}
} // Driver code int main()
{ int X = 5;
findNthTerm(X);
X = 10;
findNthTerm(X);
return 0;
} |
Java
// Java program to find N-th // term in the series class GFG
{ static int MAX = 1000 ;
// Function to find Nth Prime Number static int NthPrime( int n)
{ int count = 0 ;
int i;
for (i = 2 ; i <= MAX; i++)
{ int check = 0 ;
for ( int j = 2 ; j <= Math.sqrt(i); j++)
{
if (i % j == 0 )
{
check = 1 ;
break ;
}
}
if (check == 0 )
count++;
if (count == n)
{
return i;
}
} return 0 ;
} // Function to find Nth Fibonacci Number static int NthFib( int n)
{ // Declare an array to store // Fibonacci numbers. int []f = new int [n + 2 ];
int i;
// 0th and 1st number of the // series are 0 and 1 f[ 0 ] = 0 ;
f[ 1 ] = 1 ;
for (i = 2 ; i <= n; i++)
{ f[i] = f[i - 1 ] + f[i - 2 ];
} return f[n];
} // Function to find N-th term // in the series static void findNthTerm( int n)
{ // If n is even if (n % 2 == 0 )
{ n = n / 2 ;
n = NthPrime(n);
System.out.println(n);
} // If n is odd else { n = (n / 2 ) + 1 ;
n = NthFib(n - 1 );
System.out.println(n);
} } // Driver code public static void main(String[] args)
{ int X = 5 ;
findNthTerm(X);
X = 10 ;
findNthTerm(X);
} } // This code is contributed // by ChitraNayal |
Python 3
# Python 3 program to find N-th # term in the series # import sqrt method from math module from math import sqrt
# Globally declare constant value MAX = 1000
# Function to find Nth Prime Number def NthPrime(n) :
count = 0
for i in range ( 2 , MAX + 1 ) :
check = 0
for j in range ( 2 , int (sqrt(i)) + 1 ) :
if i % j = = 0 :
check = 1
break
if check = = 0 :
count + = 1
if count = = n :
return i
break
# Function to find Nth Fibonacci Number def NthFib(n) :
# Create a list of size n+2
# to store Fibonacci numbers.
f = [ 0 ] * (n + 2 )
# 0th and 1st number of the
# series are 0 and 1
f[ 0 ], f[ 1 ] = 0 , 1
for i in range ( 2 , n + 1 ) :
f[i] = f[i - 1 ] + f[i - 2 ]
return f[n]
# Function to find N-th # term in the series def findNthTerm(n) :
# If n is even
if n % 2 = = 0 :
n / / = 2
n = NthPrime(n)
print (n)
# If n is odd
else :
n = (n / / 2 ) + 1
n = NthFib(n - 1 )
print (n)
# Driver code if __name__ = = "__main__" :
X = 5
# function calling
findNthTerm(X)
X = 10
findNthTerm(X)
# This code is contributed by ANKITRAI1 |
C#
// C# program to find N-th term // in the series using System;
class GFG
{ static int MAX = 1000;
// Function to find Nth Prime Number static int NthPrime( int n)
{ int count = 0;
int i;
for ( i = 2; i <= MAX; i++)
{ int check = 0;
for ( int j = 2; j <= Math.Sqrt(i); j++)
{
if (i % j == 0)
{
check = 1;
break ;
}
}
if (check == 0)
count++;
if (count == n)
{
return i;
}
} return 0;
} // Function to find Nth Fibonacci Number static int NthFib( int n)
{ // Declare an array to store // Fibonacci numbers. int []f = new int [n + 2];
int i;
// 0th and 1st number of the // series are 0 and 1 f[0] = 0; f[1] = 1; for (i = 2; i <= n; i++)
{ f[i] = f[i - 1] + f[i - 2];
} return f[n];
} // Function to find N-th term // in the series static void findNthTerm( int n)
{ // If n is even if (n % 2 == 0)
{ n = n / 2;
n = NthPrime(n);
Console.WriteLine(n);
} // If n is odd else { n = (n / 2) + 1;
n = NthFib(n - 1);
Console.WriteLine(n);
} } // Driver code public static void Main()
{ int X = 5;
findNthTerm(X);
X = 10;
findNthTerm(X);
} } // This code is contributed // by ChitraNayal |
PHP
<?php // PHP program to find // N-th term in the series $MAX = 1000;
// Function to find // Nth Prime Number function NthPrime( $n )
{ global $MAX ;
$count = 0;
for ( $i = 2; $i <= $MAX ; $i ++)
{
$check = 0;
for ( $j = 2;
$j <= sqrt( $i ); $j ++)
{
if ( $i % $j == 0)
{
$check = 1;
break ;
}
}
if ( $check == 0)
$count ++;
if ( $count == $n )
{
return $i ;
break ;
}
}
} // Function to find // Nth Fibonacci Number function NthFib( $n )
{ // Declare an array to store
// Fibonacci numbers.
$f = array ( $n + 2);
// 0th and 1st number of
// the series are 0 and 1
$f [0] = 0;
$f [1] = 1;
for ( $i = 2; $i <= $n ; $i ++)
{
$f [ $i ] = $f [ $i - 1] +
$f [ $i - 2];
}
return $f [ $n ];
} // Function to find N-th // term in the series function findNthTerm( $n )
{ // If n is even
if ( $n % 2 == 0)
{
$n = $n / 2;
$n = NthPrime( $n );
echo $n . "\n" ;
}
// If n is odd
else
{
$n = ( $n / 2) + 1;
$n = NthFib( $n - 1);
echo $n . "\n" ;
}
} // Driver code $X = 5;
findNthTerm( $X );
$X = 10;
findNthTerm( $X );
// This Code is contributed // by mits ?> |
Javascript
<script> // JavaScript program to find N-th term // in the series let MAX =1000; // Function to find Nth Prime Number function NthPrime( n)
{ let count = 0;
for (let i = 2; i <= MAX; i++) {
let check = 0;
for (let j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
check = 1;
break ;
}
}
if (check == 0)
count++;
if (count == n) {
return i;
break ;
}
}
} // Function to find Nth Fibonacci Number function NthFib( n)
{ // Declare an array to store
// Fibonacci numbers.
var f= new Int16Array(n+2).fill(0);
let i;
// 0th and 1st number of the
// series are 0 and 1
f[0] = 0;
f[1] = 1;
for (i = 2; i <= n; i++) {
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
} // Function to find N-th term // in the series function findNthTerm( n)
{ // If n is even
if (n % 2 == 0) {
n = n / 2;
n = NthPrime(n);
document.write(n + "<br/>" );
}
// If n is odd
else {
n = parseInt(n / 2) + 1;
n = NthFib(n - 1);
document.write(n + "<br/>" );
}
} // Driver code let X = 5;
findNthTerm(X);
X = 10;
findNthTerm(X);
// This code contributed by aashish1995 </script> |
Output:
1 11
Time Complexity: O(MAX*sqrt(MAX)), where MAX represents a defined constant.
Auxiliary Space: O(X), where X represents the given integer.