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();
}
}
}
Простые числа это какие?
А так обычный цикл использовать;
А так обычный цикл использовать;
int sum = 0;
for(int i = 0; i < arr.Lengh; i++)
{
sum += arr[i];
}
Владислав Пан
Простое число — натуральное число, имеющее ровно два различных натуральных делителя. Другими словами, натуральное число p является простым, если оно отлично от 1 и делится без остатка только на 1 и на само p.
Похожие вопросы
- Задача с массивами на С#. Я Создала массив, но он просто выводит повторно то, что я ввела. Как это можно решить?
- Задача массивы c# , прошу помощи...
- C# Массив структур.Конструктор .Доступ к отдельным элементам массива в массиве структур.
- Помогите написать программу с массивом на C#
- Массивы. Помогите в долгу не останусь
- C#. Задание с двумерным массивом.
- Как можно найти одинаковые элементы массива? С#
- Массивы, и вывод.
- Почему в C# нумерация (индексы) элементов массива начинаются с нуля, а не с единицы?
- С # Дан двумерный массив целых чисел размером m*n. Заполнить его с клавиатуры.