Hey Hugh, thanks for your response.
In my article I've tried to show that if you run into a wall concerning Python's performance, you can rewrite a small piece in a language like Rust for a better performance. In order to demonstrate this I needed a function that calculates a lot. This is why I've used the prime counting algorithm; it's intentionally slow to demonstrate the performance improvement.
If I were to upgrade my Python function to use the Sieve it would still be slower than it's Rust equivalent. This is what I meant to demonstrate.
Kind regards,
Mike