Fibonacci number in an array
We have been given an array and our task is to check if the element of array is present in Fibonacci series or not. If yes, then print that element.
Examples:
Input : 4, 2, 8, 5, 20, 1, 40, 13, 23
Output : 2 8 5 1 13
Here, Fibonacci series will be 0, 1, 1, 2,
3, 5, 8, 13, 21, 34, 55. Numbers that are present
in array are 2, 8, 5, 1, 13
For 2 -> 5 * 2 * 2 - 4 = 16
16 is a perfect square of 4
Input : 4, 7, 6, 25
Output : No Fibonacci number in this array
A number is said to be in Fibonacci series if either (5 * n * n – 4) or (5 * n * n + 4) is a perfect square. Please refer check if a given number is Fibonacci number for details.
Implementation:
C++
#include <bits/stdc++.h>
using namespace std;
bool isPerfectSquare( int num)
{
int n = sqrt (num);
return (n * n == num);
}
void checkFib( int array[], int n)
{
int count = 0;
for ( int i = 0; i < n; i++) {
if (isPerfectSquare(5 * array[i] * array[i] + 4) || isPerfectSquare(5 * array[i] * array[i] - 4)) {
cout << array[i] << " " ;
count++;
}
}
if (count == 0)
cout << "None present" << endl;
}
int main()
{
int array[] = { 4, 2, 8, 5, 20, 1, 40, 13, 23 };
int n = sizeof (array) / sizeof (array[0]);
checkFib(array, n);
return 0;
}
|
Java
import java.io.*;
import java.math.*;
class GFG {
static boolean isPerfectSquare( int num)
{
int n = ( int )(Math.sqrt(num));
return (n * n == num);
}
static void checkFib( int array[], int n)
{
int count = 0 ;
for ( int i = 0 ; i < n; i++) {
if (isPerfectSquare( 5 * array[i] * array[i] + 4 ) || isPerfectSquare( 5 * array[i] * array[i] - 4 )) {
System.out.print(array[i] + " " );
count++;
}
}
if (count == 0 )
System.out.println( "None Present" );
}
public static void main(String[] args)
{
int array[] = { 4 , 2 , 8 , 5 , 20 , 1 , 40 , 13 , 23 };
int n = array.length;
checkFib(array, n);
}
}
|
Python3
import math
def isPerfectSquare(num):
n = int (math.sqrt(num))
return (n * n = = num)
def checkFib(array, n):
count = 0
for i in range (n):
if (isPerfectSquare( 5 * array[i] * array[i] + 4 ) or
isPerfectSquare( 5 * array[i] * array[i] - 4 )):
print (array[i], " " , end = "");
count = count + 1
if (count = = 0 ):
print ( "None present" );
array = [ 4 , 2 , 8 , 5 , 20 , 1 , 40 , 13 , 23 ]
n = len (array)
checkFib(array, n)
|
C#
using System;
class GFG {
static bool isPerfectSquare( int num)
{
int n = ( int )(Math.Sqrt(num));
return (n * n == num);
}
static void checkFib( int [] array, int n)
{
int count = 0;
for ( int i = 0; i < n; i++) {
if (isPerfectSquare(5 * array[i] * array[i] + 4) ||
isPerfectSquare(5 * array[i] * array[i] - 4))
{
Console.Write(array[i] + " " );
count++;
}
}
if (count == 0)
Console.WriteLine( "None Present" );
}
public static void Main()
{
int [] array = { 4, 2, 8, 5, 20, 1, 40, 13, 23 };
int n = array.Length;
checkFib(array, n);
}
}
|
Javascript
<script>
function isPerfectSquare(num)
{
let n = parseInt(Math.sqrt(num));
return (n * n == num);
}
function checkFib(array, n)
{
let count = 0;
for (let i = 0; i < n; i++)
{
if (isPerfectSquare(5 * array[i] *
array[i] + 4) ||
isPerfectSquare(5 * array[i] *
array[i] - 4))
{
document.write(array[i] + " " );
count++;
}
}
if (count == 0)
document.write( "None present + <br>" );
}
let array = [4, 2, 8, 5, 20,
1, 40, 13, 23];
let n = array.length;
checkFib(array, n);
</script>
|
PHP
<?php
function isPerfectSquare( $num )
{
$n = (int)(sqrt( $num ));
return ( $n * $n == $num );
}
function checkFib( $array , $n )
{
$count = 0;
for ( $i = 0; $i < $n ; $i ++)
{
if (isPerfectSquare(5 * $array [ $i ] *
$array [ $i ] + 4) ||
isPerfectSquare(5 * $array [ $i ] *
$array [ $i ] - 4))
{
echo $array [ $i ]. " " ;
$count ++;
}
}
if ( $count == 0)
echo "None present\n" ;
}
$array = array (4, 2, 8, 5, 20,
1, 40, 13, 23);
$n = sizeof( $array );
checkFib( $array , $n );
?>
|
Last Updated :
19 Sep, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...