From 8b8fba34594764cbd8d834337f03d6e03b108964 Mon Sep 17 00:00:00 2001
From: Daniel Pustotin <daniel.pustotin@gmail.com>
Date: Sun, 2 Oct 2022 19:35:02 +0300
Subject: [PATCH] Improve code complexity for segmented sieve (#6372)

---
 maths/segmented_sieve.py | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/maths/segmented_sieve.py b/maths/segmented_sieve.py
index b15ec2480..0054b0595 100644
--- a/maths/segmented_sieve.py
+++ b/maths/segmented_sieve.py
@@ -15,15 +15,12 @@ def sieve(n):
         if temp[start] is True:
             in_prime.append(start)
             for i in range(start * start, end + 1, start):
-                if temp[i] is True:
-                    temp[i] = False
+                temp[i] = False
         start += 1
     prime += in_prime
 
     low = end + 1
-    high = low + end - 1
-    if high > n:
-        high = n
+    high = min(2 * end, n)
 
     while low <= n:
         temp = [True] * (high - low + 1)
@@ -41,9 +38,7 @@ def sieve(n):
                 prime.append(j + low)
 
         low = high + 1
-        high = low + end - 1
-        if high > n:
-            high = n
+        high = min(high + end, n)
 
     return prime