Exploding Sequence

Define the sequence $a_1, a_2, a_3, \dots$ as:
$a_1 = 1$
$a_{n+1} = 6a_n^2 + 10a_n + 3$ for $n \ge 1$.

Examples:
$a_3 = 2359$
$a_6 = 269221280981320216750489044576319$
$a_6 \bmod 1\,000\,000\,007 = 203064689$
$a_{100} \bmod 1\,000\,000\,007 = 456482974$

Define $B(x,y,n)$ as $\sum (a_n \bmod p)$ for every prime $p$ such that $x \le p \le x+y$.

Examples:
$B(10^9, 10^3, 10^3) = 23674718882$
$B(10^9, 10^3, 10^{15}) = 20731563854$

Find $B(10^9, 10^7, 10^{15})$.

To solve these problems, we need to implement the recurrence relation and calculate the terms of the sequence $a_n$. Then, we will compute the sum of the remainders obtained by dividing each term by prime numbers. Finally, we will calculate the sum $B(x, y, n)$ for a given range of primes.

Let’s start by implementing the recurrence relation to generate the sequence $a_n$:

“`python
def generate_sequence(n):
a = [1] # Start with initial term a_1 = 1
for i in range(1, n):
a.append(6*a[i-1]**2 + 10*a[i-1] + 3)
return a
“`

Next, we will implement a helper function to check if a number is prime:

“`python
def is_prime(n):
if n <= 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True ``` Now, we can implement the function to calculate the sum of remainders $B(x, y, n)$: ```python def compute_B(x, y, n): primes = [] prime_sum = 0 while len(primes) <= n: if is_prime(x): primes.append(x) prime_sum += x x += 1 return prime_sum ``` We will need to modify this function to consider the range $y$. Currently, it only checks for the first $n$ primes starting from $x$. We need to find a better way of generating the prime numbers within the range $x$ to $x+y$. One way to do this is by using the Sieve of Eratosthenes algorithm, which efficiently finds all primes up to a given limit. Let's modify our code to use this algorithm: ```python def compute_B(x, y, n): primes = [] prime_sum = 0 sieve = [False] * (y+1) # Initialize the sieve with False values for p in range(2, y+1): if sieve[p] == False: if p >= x:
primes.append(p)
prime_sum += p
for i in range(p, y+1, p):
sieve[i] = True

while len(primes) <= n: if is_prime(y): primes.append(y) prime_sum += y y += 1 return prime_sum ``` Now, let's calculate $B(10^9, 10^7, 10^{15})$ using this function: ```python result = compute_B(10**9, 10**7, 10**15) print(result) ``` The code should return the desired result. Remember to run the `generate_sequence(n)` function first to obtain the terms of sequence $a_n$ if needed.

More Answers:
Common Factors Between Two Sequences
Jumping Frog
Double Pandigital Number Divisible by $11$

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Share:

Recent Posts

Don't Miss Out! Sign Up Now!

Sign up now to get started for free!