Тег: поиск простых чисел C#

KostyeFromHelen
15. Листы, foreach, goto - поиск простых чисел
12.05.2011 05:32:49

Читал недавно одну книгу про простые числа. Это числа, которые делятся только на себя и на единицу. Все остальные числа составные, их можно представить как произведение простых чисел.Вот и решил написать программу, чтобы она искала простые числа.
Пояснения к коду смотри ниже.

static void Main(string[] args)
{
List prCh  = new List();
prCh.Add(2);
for (int i = 3; i < 17000; i++)
{
foreach(int ch in prCh)
{
if (i % ch == 0)
{
goto L;
}

}
prCh.Add(i);
L:  continue;
}

foreach (int ch in prCh)
{
Console.Write(ch + " ");
}
}

Лист представляет собой строго типизированный список объектов. В лист prCh будем добавлять найденные простые числа. Алгоритм такой: мы каждое число делим на простые числа в листе, если ни на одно из чисел не делится, значит наше число простое. Для этого добавим первое простое число в лист. Это число 2.

Мы будем использовать цикл foreach, этот цикл используется только для чтения. Мы не можем изменять наш лист в цикле, поэтому добавление нового числа(prCh.Add(i);) мы вынесли за цикл. Поэтому, если наше текущее число не является простым, мы должны перепрыгнуть строчку добавления. Для этого мы используем конструкцию goto L; L - это любая метка в коде, на которую мы перепрыгиваем. Около метки стоит ключевое слово continue, которое говорит о том, что мы перейдём к следующей итерации нашего основного цикла for.

В самом конце мы просто выводим все объекты нашего листа.

P.S. Знак % вычисляет остаток от деления.



Теги: List C# | goto C# | поиск простых чисел C# | foreach C#

Комментариев 11 | Просмотров: 4003 | Подробнее...


 

Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.