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;
}