Skip to content
Related Articles

Related Articles

Python Program for nth multiple of a number in Fibonacci Series

View Discussion
Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 22 Aug, 2022
View Discussion
Improve Article
Save Article

Given two integers n and k. Find position the nth multiple of K in the Fibonacci series. 
Examples:

Input: k = 2, n = 3
Output: 9, 3rd multiple of 2 in Fibonacci Series is 34 that appears at position 9.

Input: k = 4, n = 5 
Output: 30, 5th multiple of 5 in Fibonacci Series is 832040 which appears at position 30.

An Efficient Solution is based on the below interesting property. 
The Fibonacci series is always periodic under modular representation. Below are examples. 

F (mod 2) = {{1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0}, {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0}}
Here 0 is repeating at every 3rd index and the cycle repeats at every 3rd index. 

F (mod 3) = {{1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0}, {1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2}}
Here 0 is repeating at every 4th index and the cycle repeats at every 8th index.

F (mod 4) = {{1,1,2,3,1,0,1,1,2,3,1,0,1,1,2,3},{1,0,1,1,2,3,1,0,1,1,2,3,1,0}}
Here 0 is repeating at every 6th index and the cycle repeats at every 6th index.

F (mod 5) = {{1,1,2,3,0,3,3,1,4,0,4,4,3,2,0}, {2,2,4,1,0,1,1,2,3,0,3,3,1,4,0}}
Here 0 is repeating at every 5th index and the cycle repeats at every 20th index.

F (mod 6) = {{1,1,2,3,5,2,1,3,4,1,5,0,5,5,4}, {3,1,4,5,3,2,5,1,0,1,1,2,3,5,2}}
Here 0 is repeating at every 12th index and the cycle repeats at every 24th index.

F (mod 7) = {{1,1,2,3,5,1,6,0,6,6,5,4,2,6,1}, {0,1,1,2,3,5,1,6,0,6,6,5,4,2,6 }}
Here 0 is repeating at every 8th index and the cycle repeats at every 16th index.

Below is the implementation of above approach:

Python3




# Python Program to find position of n\'th multiple
# of a number k in Fibonacci Series
 
def findPosition(k, n):
    f1 = 0
    f2 = 1
    i =2;
    while i!=0:
        f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
 
        if f2%k == 0:
            return n*i
 
        i+=1
         
    return
 
 
# Multiple no.
n = 5;
# Number of whose multiple we are finding
k = 4;
 
print("Position of n\'th multiple of k in"
                "Fibonacci Series is", findPosition(k,n));
 
# Code contributed by Mohit Gupta_OMG


Output

Position of n'th multiple of k inFibonacci Series is 30

Time Complexity: O(N), where N is the index of nth multiple of k
Auxiliary Space: O(1)

Please refer complete article on n’th multiple of a number in Fibonacci Series for more details!

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!