力扣中的一个快速筛大整数内所有素数的python算法

问题遇到的现象和发生背景

快速从用python筛出22亿内所有素数(速度快于欧拉筛),找到个题解但看不懂

用代码块功能插入代码,请勿粘贴截图
# 返回所有素数(小于n)的数量
n=int(input('请输入一个整数:'))
n -= 1
if n < 2:
    print(0)
r = int(n ** 0.5)
V = [n//d for d in range(1, r + 1)]
V += list(range(V[-1] - 1, 0, -1))            
S = {v: v - 1 for v in V}
#print(S)
for p in range(2, r + 1):
    if S[p] == S[p - 1]:
        continue
    p2 = p * p
    sp_1 = S[p - 1]
    for v in V:
        if v < p2:
            break
        S[v] -= S[v//p] - sp_1
print(S[n])