using System.Collections.Generic;
public static bool IsPrime(int value) {
for (int divisor = 3; ; divisor += 2) {
var (q, r) = int.DivRem(value, divisor);
public static IEnumerable<int> AllPrimesInRange(int lowerEdge, int upperEdge) {
lowerEdge = Math.Max(lowerEdge, 2);
if (lowerEdge == 2 && upperEdge >= lowerEdge)
lowerEdge = (lowerEdge / 2 * 2 + 1);
for (int number = lowerEdge; number <= upperEdge; number += 2)
public static void Main() {
foreach (int number in AllPrimesInRange(28, 165))
Console.WriteLine(number);