Given two integers X and Y, the task is to perform the following operations:
Examples:
_Input: _X = 2 Y = 40
_Output: _34
Explanation:
All primes in the range [X, Y] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
All possible numbers generated by concatenating each pair of prime = [23, 25, 27, 211, 213, 217, 219, 223, 229, 231, 32, 35, 37, 311, 313, 319, 323, 329, 331, 337, 52, 53, 57, 511, 513, 517, 519, 523, 529, 531, 537, 72, 73, 75, 711, 713, 717, 719, 723, 729, 731, 737, 112, 113, 115, 117, 1113, 1117, 1119, 1123, 1129, 1131, 1137, 132, 133, 135, 137, 1311, 1317, 1319, 1323, 1329, 1331, 1337, 172, 173, 175, 177, 1711, 1713, 1719, 1723, 1729, 1731, 1737, 192, 193, 195, 197, 1911, 1913, 1917, 1923, 1929, 1931, 1937, 232, 233, 235, 237, 2311, 2313, 2317, 2319, 2329, 2331, 2337, 292, 293, 295, 297, 2911, 2913, 2917, 2919, 2923, 2931, 2937, 312, 315, 317, 3111, 3113, 3117, 3119, 3123, 3129, 3137, 372, 373, 375, 377, 3711, 3713, 3717, 3719, 3723, 3729, 3731]
All primes among the generated numbers=[193, 3137, 197, 2311, 3719, 73, 137, 331, 523, 1931, 719, 337, 211, 23, 1117, 223, 1123, 229, 37, 293, 2917, 1319, 1129, 233, 173, 3119, 113, 53, 373, 311, 313, 1913, 1723, 317]
Count of the primes = 34
Smallest Prime = 23
Largest Prime = 3719
Therefore, the 34th term of the Fibonacci series having 23 and 3719 as the first two terms, is 13158006689.
Input:_ X = 1, Y = 10_
Output:_ 1053_
Approach:
Follow the steps below to solve the problem:
Below is the implementation of the above approach:
## Python Program to implement
## the above approach
## Stores at each index if it's a
## prime or not
prime
**=**
[``True
**for**
i
**in**
range``(``100001``)]
## Sieve of Eratosthenes to
## generate all possible primes
**def**
SieveOfEratosthenes():
p
**=**
2
**while**
(p
*****
p <``**=**
100000``):
## If p is a prime
**if**
(prime[p]
**==**
True``):
## Set all multiples of p as non-prime
**for**
i
**in**
range``(p
*****
p,
100001``, p):
prime[i]
**=**
False
p
**+=**
1
## Function to generate the
## required Fibonacci Series
**def**
fibonacciOfPrime(n1, n2):
SieveOfEratosthenes()
## Stores all primes between
## n1 and n2
initial
**=**
[]
## Generate all primes between
## n1 and n2
**for**
i
**in**
range``(n1, n2):
**if**
prime[i]:
initial.append(i)
## Stores all concatenations
## of each pair of primes
now
**=**
[]
## Generate all concatenations
## of each pair of primes
**for**
a
**in**
initial:
**for**
b
**in**
initial:
**if**
a !``**=**
b:
c
**=**
str``(a)
**+**
str``(b)
now.append(``int``(c))
## Stores the primes out of the
## numbers generated above
current
**=**
[]
**for**
x
**in**
now:
**if**
prime[x]:
current.append(x)
## Store the unique primes
current
**=**
set``(current)
## Find the minimum
first
**=**
min``(current)
## Find the minimum
second
**=**
max``(current)
## Find N
count
**=**
len``(current)
**-**
1
curr
**=**
1
**while**
curr < count:
c
**=**
first
**+**
second
first
**=**
second
second
**=**
c
curr
**+=**
1
## Print the N-th term
## of the Fibonacci Series
**print**``(c)
## Driver Code
**if**
__name__
**==**
"__main__"``:
x
**=**
2
y
**=**
40
fibonacciOfPrime(x, y)
Output:
13158006689
Time Complexity:_ O(N2 + log(log(maxm))), where it takes O(N2) to generate all pairs and O(1) to check if a number is prime or not and maxm is the size of prime[]_
Auxiliary Space:_ O(maxm)_
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
#cs - placements #mathematical #searching #sorting #fibonacci #prime number #sieve #tcs-coding-questions #tcs-interview-experience