def sinal(n): return 1 if n > 0 else 0 if n == 0 else -1
def isp  (n): return sinal( n - 2 - sum( sinal(n%i)                             for i in range(2,n     ) ) )
def nump (n): return        n - 1 - sum( isp(j)                                 for j in range(2,n+1   ) )
def primo(n): return                sum( k*(1-isp(k))*(1-abs(sinal(n-nump(k)))) for k in range(2,n**2+8) )

print(isp(4))    # 1
print(nump(10))  # 4
print(primo(10)) # 29