C Exercises: Check if a given number is Fibonacci number or not
C Programming Mathematics: Exercise-26 with Solution
Write a C program to check if a given number is a Fibonacci number or not.
In mathematics, the Fibonacci numbers, commonly denoted Fn form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is, and for n > 1. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89.
Example:
Input: n = 8
Output: Is 8 a Fibonacci number? 1
Visual Presentation:
Sample Solution:
C Code:
#include <stdio.h>
#include <math.h>
// Function to check if a number is a perfect square
int isPerfectSquare(int x) {
int s = (int)sqrt(x); // Calculate the square root of x and truncate to an integer
return (s * s == x); // Return true if x is a perfect square (if s*s is equal to x)
}
// Function to check if a number is a Fibonacci number
int isFibonacci(int x) {
// Check if the given number is a perfect square of (5 * x^2 + 4) or (5 * x^2 - 4)
return isPerfectSquare(5 * x * x + 4) || isPerfectSquare(5 * x * x - 4);
}
// Main function
int main(void) {
// Declare and initialize the number 'n' to check if it's a Fibonacci number
int n = 8; // The number to be checked
// Check if 'n' is greater than 0 before proceeding
if (n > 0) {
// Print whether 'n' is a Fibonacci number or not by calling the 'isFibonacci' function
printf("Is %d a Fibonacci number? %d", n, isFibonacci(n));
}
return 0; // End of the main function
}
Sample Output:
Is 8 a Fibonacci number? 1
Flowchart:
C Programming Code Editor:
Improve this sample solution and post your code through Disqus.
Previous: Write a C program to print all prime factors of a given number.
Next: Write a C program to multiply two numbers using bitwise operators.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/c-programming-exercises/math/c-math-exercise-26.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics