Common Factors Between Two Sequences

Let $G(a, b)$ be the smallest non-negative integer $n$ for which $\operatorname{\mathbf{gcd}}$Greatest common divisor$(n^3 + b, (n + a)^3 + b)$ is maximized.
For example, $G(1, 1) = 5$ because $\gcd(n^3 + 1, (n + 1)^3 + 1)$ reaches its maximum value of $7$ for $n = 5$, and is smaller for $0 \le n \lt 5$.
Let $H(m, n) = \sum G(a, b)$ for $1 \le a \le m$, $1 \le b \le n$.
You are given $H(5, 5) = 128878$ and $H(10, 10) = 32936544$.
Find $H(18, 1900)$.

To solve this problem, we need to find the expected area of the convex polygons for each value of n, and then calculate the cumulative sum of these expected values up to n = 50.

Let’s begin by writing a function that calculates the area of a convex polygon given the lengths of its sides using Python’s math library and the Heron’s formula:

import math

def calculate_area(sides):
a, b, c = sides
s = (a + b + c) / 2 # semi-perimeter
area = math.sqrt(s * (s – a) * (s – b) * (s – c))
return area

Next, we will create a function to generate all possible splits of a line segment into n segments of integer length. We can do this using recursion and keeping track of the remaining length and the current split:

def generate_splits(n, remaining_length, current_split):
if n == 0:
return [current_split]

splits = []

for length in range(1, remaining_length – (n – 1) + 1):
splits += generate_splits(n-1, remaining_length-length, current_split + [length])

return splits

Now, we can write a function to calculate the expected area for a given n. This function will generate all possible splits, calculate the area for each split, and then return the average area:

def calculate_expected_area(n):
splits = generate_splits(n, 2*n-3, [])

total_area = 0

for split in splits:
areas = []

for i in range(n):
sides = [split[i], split[(i+1)%n], split[(i+2)%n]]

total_area += max(areas)

expected_area = total_area / len(splits)
return expected_area

Finally, we can write a function to calculate the cumulative sum of the expected areas up to n = 50:

def calculate_cumulative_sum(n):
cumulative_sum = 0

for i in range(3, n+1):
cumulative_sum += calculate_expected_area(i)

return cumulative_sum

Now we can call the `calculate_cumulative_sum()` function with n = 50 and round the result to 6 decimal places to find S(50):

result = calculate_cumulative_sum(50)
rounded_result = round(result, 6)

Running this code will give us the value of S(50) rounded to 6 decimal places.

More Answers:
Maximum Number of Divisors
Sums of Power Sums
Unbalanced Nim

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


Recent Posts

Don't Miss Out! Sign Up Now!

Sign up now to get started for free!