C#

Задача на массивы

Условие задачи: Задан массив из n случайных целых чисел (число n вводится с клавиатуры, его значение не больше 20). Напишите программу, которая вычисляет и выводит на экран сумму всех простых чисел в массиве чисел.
С использованием решета Эратосфена:

 namespace ConsoleApp1 
{
class Eratosfenum
{
private HashSet PrimeNumbers;

private uint InitializedWith;

private void Init(uint _maxNumber)
{
uint[] EratosTemp = new uint[_maxNumber >> 1];
uint k = 3;
for (uint i = 0; i < EratosTemp.Length; i++)
{
EratosTemp[i] = k;
k += 2;
}

for (uint i = 0; i < EratosTemp.Length - 1; i++)
{
if (EratosTemp[i] == 0)
continue;
for (uint j = i + EratosTemp[i]; j < EratosTemp.Length; j += EratosTemp[i])
EratosTemp[j] = 0;
}

PrimeNumbers = (from x in EratosTemp where x != 0 select x).ToHashSet();

PrimeNumbers.Add(2);
}

public Eratosfenum(uint _maxNumber)
{
InitializedWith = _maxNumber;
Init(_maxNumber);
}

public IEnumerable Primes
{
get { return PrimeNumbers; }
}

public bool IsPrime(uint _test)
{
if (_test > InitializedWith)
throw new Exception("The test number is too large");
return PrimeNumbers.Contains(_test);
}
}

internal class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
Random r = new Random(DateTime.Now.Millisecond);
int[] a = Enumerable.Range(0, n).Select(x => r.Next(2, 100)).ToArray();
Console.WriteLine(a.Aggregate(string.Empty, (x, y) => x+=y.ToString()+" "));
Eratosfenum e = new Eratosfenum((uint)a.Max());
Console.WriteLine(a.Where(x => e.IsPrime((uint)x)).Sum());
Console.ReadLine();
}
}
}
ВЛ
Ван Лагачев
62 578
Лучший ответ
Простые числа это какие?
А так обычный цикл использовать;
 int sum = 0;
for(int i = 0; i < arr.Lengh; i++)
{
sum += arr[i];
}
Владислав Пан Простое число — натуральное число, имеющее ровно два различных натуральных делителя. Другими словами, натуральное число p является простым, если оно отлично от 1 и делится без остатка только на 1 и на само p.