Решето Эратосфена С# WinForms Visual Studio 2010

  • В данной работе представлены ТОЛЬКО ИСХОДНИКИ проекта C# Visual Studio 2010 WinForms
  • Исходное задание на курсовую работу: Дано натуральное число n (n>=2). Найти все меньшие n простые числа, используя решето Эратосфена.

Анимация алгоритма.

Целое число, большее 1, называется простым, если оно не делится нацело ни на какое другое, кроме себя и 1.

Древний алгоритм «Решето Эратосфена» для поиска всех простых чисел до n выглядит так:

  • Создать список последовательных чисел от 2 до n2, 3, 4, ..., n.
  • Пусть p=2, это первое простое число.
  • Зачеркнуть все последующие числа в списке с разницей в p, т.е. 2*p, 3*p, 4*p и т.д. В случае p=2 это будут4,6,8....
  • Поменять значение p на первое не зачеркнутое число после p.
  • Повторить шаги 3-4 пока p2 < n.
  • Все оставшиеся не зачеркнутыми числа — простые.
Фрагмент программного кода
            //составляем список из чисел от 2 до n
            List<int> numbers = new List<int>();
            for (i = 2;i<=n;i++)
                numbers.Add(i);

            //для каждого числа
            for (i = 0; i<numbers.Count; i++)
            {
                //идем по остальным числам
                for (j=i; j<numbers.Count;j++)
                {
                    //вычеркиваем большие кратные числа
                    if ((numbers[i] != numbers[j]) && (numbers[j] % numbers[i] == 0))
                    {
                        numbers.RemoveAt(j);
                        j--;	
                    }
                }
            }

            richTextBox.AppendText("Простые числа:\n");
            String s = "";
            for (i=0; i<numbers.Count;i++)
                s += numbers[i].ToString() + " ";
            richTextBox.AppendText(s);

            //список хранения четерок
            List<int> four = new List<int>();
            //текущее число найденых чисел одного интервала и сам интервал
            int interval = 0;
            richTextBox.AppendText("\nЧетверки простых чисел:\n");

            for (i = 0; i<numbers.Count; i++)
            {
                //если первый или новый интервал сбрасываем значения
                if ((i == 0) || (numbers[i] / 10 != interval))
                {
                    interval = numbers[i] / 10;
                    four.Clear();
                }
                //если интервал не изменился записывем число
                if (numbers[i] / 10 == interval)
                {
                    four.Add(numbers[i]);

                    //если записано 4 числа выводим на экран
                    if (four.Count == 4)
                    {
                        s = "";
                        for (j = 0; j < 4; j++)
                            s += four[j].ToString() + " ";
                        richTextBox.AppendText(s+"\n");
                        
                    }
                }
            }

Содержание архива

  • исходный код  на C# для Visual Studio 2010

Присоединяйся

Зарегестрируйся с помощью социальных сетей.

Публикуй

Опиши работу, прикрепи файлы и назначь цену.

Зарабатывай

Получай пассивный доход с продажи работ.

Тебе понадобится 5 минут для публикации работы на сайте.
Купить

780,00 

(без учета комиссии 3,8 %)

2. Решето Эратосфена.rar
441723
Оцени работу

рейтинг

Поделись работой с друзьями

Мы не грузим циферки, чтоб ты увидел контент как можно быстрее;

Комментарии (2)

klausms

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегестрированые пользователи имеют возможность комментировать работы
Решето Эратосфена С# WinForms Visual Studio 2010
Дано натуральное число n (n>=2). Найти все меньшие n простые числа, используя решето Эратосфена.
Категория: Образование
Стоимость: 780,00