stride=2k
This part of the solution is because ints are 4 bytes on the system in question. Since pages are 8KB, a stride of 2048 ints will place each access on a different page.
MAX=33*stride
Since the stride length is the page size, this sets an array length of 33 pages. Assuming the 32-entry TLB is full-LRU, that means that between accesses to a given page, all 32 other pages in the array are accessed, enough to evict the page from the TLB and cause a page fault when its turn comes again.