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:
Try It Yourself
// CPP program to find Fibonacci series numbers
// in a given array.
#include <bits/stdc++.h>
using namespace std;
// Function to check number is a
// perfect square or not
bool isPerfectSquare(int num)
{
int n = sqrt(num);
return (n * n == num);
}
// Function to check if the number
// is in Fibonacci or not
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;
}
// Driver function
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 program to find Fibonacci series numbers
// in a given array
import java.io.*;
import java.math.*;
class GFG {
// Function to check number is a
// perfect square or not
static boolean isPerfectSquare(int num)
{
int n = (int)(Math.sqrt(num));
return (n * n == num);
}
// Function to check if the number
// is in Fibonacci or not
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");
}
// driver program
public static void main(String[] args)
{
int array[] = { 4, 2, 8, 5, 20, 1, 40, 13, 23 };
int n = array.length;
checkFib(array, n);
}
}
// Contributed by Pramod Kumar
# Python program to find
# Fibonacci series numbers
# in a given array.
import math
def isPerfectSquare(num):
n = int(math.sqrt(num))
return (n * n == num)
# Function to check if the number
# is in Fibonacci or not
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");
# driver code
array = [4, 2, 8, 5, 20, 1, 40, 13, 23]
n = len(array)
checkFib(array, n)
# This code is contributed
# by Anant Agarwal.
// C# program to find Fibonacci series
// numbers in a given array
using System;
class GFG {
// Function to check number is a
// perfect square or not
static bool isPerfectSquare(int num)
{
int n = (int)(Math.Sqrt(num));
return (n * n == num);
}
// Function to check if the number
// is in Fibonacci or not
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");
}
// driver program
public static void Main()
{
int[] array = { 4, 2, 8, 5, 20, 1, 40, 13, 23 };
int n = array.Length;
checkFib(array, n);
}
}
// This code is contributed by Sam007
<script>
// Javascript program to find
// Fibonacci series numbers
// in a given array.
// Function to check
// number is a perfect
// square or not
function isPerfectSquare(num)
{
let n = parseInt(Math.sqrt(num));
return (n * n == num);
}
// Function to check
// if the number is
// in Fibonacci or not
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>");
}
// Driver Code
let array = [4, 2, 8, 5, 20,
1, 40, 13, 23];
let n = array.length;
checkFib(array, n);
// This code is contributed by _saurabh_jaiswal
</script>
<?php
// PHP program to find
// Fibonacci series numbers
// in a given array.
// Function to check
// number is a perfect
// square or not
function isPerfectSquare($num)
{
$n = (int)(sqrt($num));
return ($n * $n == $num);
}
// Function to check
// if the number is
// in Fibonacci or not
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";
}
// Driver Code
$array = array(4, 2, 8, 5, 20,
1, 40, 13, 23);
$n = sizeof($array);
checkFib($array, $n);
// This code is contributed by mits.
?>
Output
2 8 5 1 13