Prime Fibonnaci Problem Description Given two numbers n1 and n2 1. Find prime numbers between n1 and n2, then 2. Make all possible unique combinations of numbers from the prime numbers list you found in step 1. 3. From this new list, again find all prime numbers. 4. Find smallest (a) and largest (b) number from the 2nd generated list, also count of this list. 5. Consider smallest and largest number as the 1st and 2nd number to generate Fibonacci series respectively till the count (number of primes in the 2nd list). 6. Print the last number of a Fibonacci series as an output Constraints 2 = 35 Input Format One line containing two space separated integers n1 and n2. Output Last number of a generated Fibonacci series. Timeout 1 Test Case Example 1 Input 2 40 Output 13158006689 Explanation 1st prime list = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37] Combination of all the primes = [23, 25, 27, 211, 213, 217, 219, 223, 229, 231, 32, 35, 37, 311, 313, 319, 323, 329, 3
Answers
Answer:
import math
import itertools
def check_prime(combinations):
prime_list2=[]
for num in combinations:
for i in range(2, math.floor(math.sqrt(num))+1):
if (num % i) == 0:
break
else:
prime_list2.append(num)
return list(set(prime_list2))
def find_prime_numbers(lower,upper):
prime_numbers=[]
for num in range(lower, upper + 1):
for i in range(2, math.floor(math.sqrt(num))+1):
if (num % i) == 0:
break
else:
prime_numbers.append(num)
return list(set(prime_numbers))
def get_combinations(prime_numbers):
combinations=[]
combo=set(itertools.permutations(prime_numbers,2))
for a,b in combo:
combinations.append(int("{}{}".format(a,b)))
return set(combinations)
def make_fibbonacci(no1,no2,count):
fib=[no1,no2]
for i in range(count-2):
fib.append(fib[i]+fib[i+1])
return fib[-1]
a,b=(int(i) for i in input().split())
if abs(a-b)>=35 and a>=1 and b<=100:
prime_numbers=find_prime_numbers(a,b)
combinations=get_combinations(prime_numbers)
prime_list2=check_prime(combinations)
print(make_fibbonacci(min(prime_list2),max(prime_list2),len(prime_list2)))
Explanation:
Hope it helps
Language used : Python Programming
Program:
x,y=input().split(" ")
l1=[]
l2=[]
def primeornot(i):
if i==1:
return False
elif i==2:
return True
else:
for j in range(2,i):
if i%j==0:
return False
return True
x=int(x)
y=int(y)
if x>=2 and y<=100 and abs(x-y)>=35:
for i in range(x,y+1):
if(primeornot(i)==True):
l1.append(i)
for i in range(len(l1)):
for j in range(len(l1)):
if i!=j:
l2.append(int(str(l1[i])+str(l1[j])))
l1.clear()
for i in l2:
if primeornot(i)==True:
if i not in l1:
l1.append(i)
l2.clear()
mini=min(l1)
maxi=max(l1)
nextterm=0
lengthoffib=len(l1)-2
l1.clear()
while(lengthoffib!=0):
nextterm=mini+maxi
mini=maxi
maxi=nextterm
lengthoffib=lengthoffib-1
print(nextterm)
Test cases:
Test case 1:
Input 1 : 2 40
Output 1 : 13158006689
Test case 2:
Input 2: 30 70
Output 2: 2027041
Explanation of a test case:
Let the numbers inputted be 2 40
First list, i.e, primes between the two is [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
Using this list, we make combinations of numbers and form another list as in Combination of all the primes = [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, 3]
And the prime list from the list 2 is prime list=[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]
Minimum element = 23
Maximum element = 3719
As the length of the prime list is 34 (34 elements are present in the prime list), we need to find the 34th element on stating the fibanocci sequence with 23 and 3719
As in, 23, 3719, 3742 (23+3719), 7461 (3742+3719), ......, 13158006689 (the 34th term of the series)
So, the output is 13158006689
Procedure:
First we will be taking two input parameters x and y and will be forming a list of prime numbers between the two (x&y).
On creating the list, we will make combinations of the numbers in the list and make the whole as a list 2. On forming the second list, we will again form a list of primes from the list 2 and find min and max elements of those primes.
On finding the min and max elements, make a fibanocci series starting from min, max elements and find the nth term of the series, where n is the length of the new prime list formed from list 2.
The nth term of the series will be your output.
Learn more :
1. Matrix addition program
brainly.in/question/17257855
2. what is output for snippet-s=0 for s in range(5): print(s)
brainly.in/question/8107617