ArrayList getPrimeNumber(long upper) { ArrayList arr = new ArrayList(); bool[] flags = new bool[upper+1]; arr.Add(2); for (int i = 2; i < upper + 1; i += 2) flags[i] = true; for (int i = 3; i < upper + 1; i += 2) { if (!flags[i]) { arr.Add(i); for (int j = i; j < upper+1; j+=i)flags[j] = true; } } return arr; }