I am looking at the Python solution for generating all primes with the Seive of Eratosthenes, but I am trying to infer two things in the solution:

why the initial variable of size is set to the following:
size = (n  3) // 2 + 1

why the value of p is being updated by the following:
p = i * 2 + 3
The solution in the repository doesn’t actually match the representative solution in the book which appears to be more clear