Is the set $\Bbb{P}^i \pmod n$ always equal to $(\Bbb{Z}/(n))^{\times}$ or the whole set? Where $\Bbb{P}^i = \{ q_1 \cdots q_i : q_j \in \Bbb{P}\}$. Is the set $\Bbb{P}^i \pmod n$ always equal to $(\Bbb{Z}/(n))^{\times}$ the whole set $\Bbb{Z}/(n)$?
Where $\Bbb{P}^i = \{ q_1 \cdots q_i : q_j \in \Bbb{P}\} \subset \Bbb{Z}$.
If you like, $\Bbb{P}^i = \Omega^{-1}(i)$ where $\Omega: \Bbb{N} \to \Bbb{N}: n = q_1 \cdots q_i \mapsto i$.
Was intersting in figuring out what $\Bbb{P}^{j} + 1$ (elementwise) does to elements with respect to $i$.
So I figured maybe looking at $\Bbb{Z}/(n)$ and then looking back at the integers in some advanced mathematical fashion (sheaves maybe?).
Anyway, I thought I'd start with what $\Bbb{P}^i$ gets taken to modulo $n$. Since the whole problem $\pmod n$ is then a question of a finite nature.
 A: As stated, the answer is no, because the primes dividing $n$ will appear soon enough that the answers will no longer be elements of $(\Bbb Z/n)^\times$. But if you exclude the primes dividing $n$ from the products $q_1\cdots q_i$, then the answer is yes when $n$ is a power of an odd prime or twice such a power, at least.
D. K. L. Shiu proved (Strings of congruent primes. J. London Math. Soc. (2), 61(2):359–373, 2000), that for any modulus $n$, any element $a\in(\Bbb Z/n)^\times$, and any $r \ge 2$, there are infinitely sets of $r$ consecutive primes all of which are congruent to $a\pmod n$.
If we take $r=\phi(n)$ and $a$ to be a primitive root modulo $n$, then the products $q_1\cdots q_i$ will cycle through all $\phi(n)$ elements of $a\in(\Bbb Z/n)^\times$ during any such set of $\phi(n)$ consecutive primes.
The answer is conjecturally yes (again, once the statement has been suitable refined) for all $n$, but I think it is still an open problem for most moduli $n$.
A: I wrote some code.  It shows that the answer is negative.
from sympy import *

while True:
    n = input("n=")
    n = int(n)
    
    N = input("prime max=")
    N = int(N)
    P = primerange(2, N)
    P = list(P)
    
    i = input("i=")
    i = int(i)
    
    Q = P
    for j in range(i-1):
        R = []
        for q in Q:
            for p in P:
                R.append(p*q)
        Q = R

    ZZ_n = set()
    for q in Q:
        ZZ_n.add(q % n)
        
    print(ZZ_n)
    

It outputs:
    n=15
    prime max=10000
    i=1
    {1, 2, 3, 4, 5, 7, 8, 11, 13, 14}
    n=

