I have the following code which I have to figure out the recurrence relation, but I am having a bit of a trouble understanding what the algorithm does exactly.

```
Interesting-Product(A(1..n))
if n = 1 then return
for i := 1 to n/3 do
A(i) = A(i)*A(i+(n/3))
Interesting-Product(A(1..n/3))
for j := (n/3) + 1 to 2n/3 do
A(j) = A(j)*A(j+(n/3))
Interesting-Product(A(1..n/3))
```

I’m taking an algorithms class and having trouble understanding the code.