def all_primes(max_num): is_prime = [True] * (max_num + 1) p = 2 while (p * p <= max_num): if is_prime[p]: for i in range(p * p, max_num + 1, p): is_prime[i] = False p += 1 return [p for p in range(2, max_num + 1) if is_prime[p]] def filter_primes_starting_with_5(primes): return [prime for prime in primes if str(prime).startswith('5')] three_digit_primes = all_primes(999) three_digit_primes = [p for p in three_digit_primes if p >= 100] primes_starting_with_5 = filter_primes_starting_with_5(three_digit_primes) print(primes_starting_with_5)