Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 7
1

Алгоритм поиска n простых чисел

21.09.2016, 22:10. Просмотров 708. Ответов 14

Помогите, пожалуйста, составить батник, находящий простые числа в заданном интервале.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2016, 22:10
Ответы с готовыми решениями:

Алгоритм поиска целых простых чисел
Предлагаю простой алгоритм проверки и поиска простых чисел, приглашаю к сотрудничеству в написании...

Алгоритм поиска количества простых чисел в заданном массиве
алгоритм поиск количества простых чисел в заданном целочисленном массиве из 50 элементов. Помогите...

Алгоритм поиска простых чисел
Доброго времени суток. Помогите пожалуйста с алгоритмом поиска простых чисел в массиве. Искал...

Алгоритм поиска простых чисел.
Нашел пример алгоритма, используемого для получения всех простых чисел от 2 до заданного путем...

14
Модератор
2660 / 1837 / 404
Регистрация: 26.03.2015
Сообщений: 6,819
22.09.2016, 00:05 2
C#
1
2
3
4
5
6
7
8
List<int> FillPrimes(int top)
{
    List<int> primes = new List<int> { 2 };
    for (int number = 3; number <= top; number += 2)
        if (primes.All(p => number % p != 0))
            primes.Add(number);
    return primes;
}
0
89 / 86 / 11
Регистрация: 20.11.2008
Сообщений: 724
22.09.2016, 12:05 3
leomessi10, если нужен "батник", то прикрутите интервал к этому
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SetLocal EnableExtensions EnableDelayedExpansion
echo off
 
set prime=2
set /a cur=3
 
:loopStart
set isPrime=1
for %%p in (%prime%) do (
    set /a r=%cur% %% %%p
    if !r!==0 (
        set isPrime=0
    )   
)
 
if %isPrime%==1 set prime=%prime% %cur%
if %isPrime%==1 echo %prime%
 
set /a cur+=2
goto loopStart
1
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 7
22.09.2016, 13:25  [ТС] 4
а не подскажите, пожалуйста, как сделать так, чтобы я вводил число n и программа выводила на экран n простых чисел. Например, ввожу n=5, а выводит 2 3 5 7 11
0
89 / 86 / 11
Регистрация: 20.11.2008
Сообщений: 724
22.09.2016, 15:20 5
leomessi10, попробуйте сделать сами, это не сложно
Нужно добавить одну переменную, которую будете увеличивать на 1, когда нашли новое простое число, и если её значение совпало с n, выходить из цикла и выводить найденные числа
1
Модератор
2660 / 1837 / 404
Регистрация: 26.03.2015
Сообщений: 6,819
22.09.2016, 16:17 6
Цитата Сообщение от leomessi10 Посмотреть сообщение
а не подскажите, пожалуйста, как сделать так, чтобы я вводил число n и программа выводила на экран n простых чисел. Например, ввожу n=5, а выводит 2 3 5 7 11
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void Main()
{
    string input = Console.ReadLine();
    while (!string.IsNullOrWhiteSpace(input))
    {
        int count;
        if (!int.TryParse(input, out count))
        {
            Console.WriteLine($"'{input}' not a number");
        }
        else
        {
            var primes = CountPrimes(count);
            primes.ForEach(p => Console.Write($"{p} "));
            Console.WriteLine();
        }
        input = Console.ReadLine();
    }
}
 
 
List<int> CountPrimes(int count)
{
    List<int> primes = new List<int> { 2 };
    for (int number = 3; ; number += 2)
        if (primes.All(p => number % p != 0))
        {
            primes.Add(number);
            if (primes.Count >= count)
                return primes;
        }
}
0
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 7
22.09.2016, 23:21  [ТС] 7
Не подскажите, пожалуйста, если Вам не трудно? Просто только начали работать с командной строкой, а уже показать надо программу, я не успею.
0
89 / 86 / 11
Регистрация: 20.11.2008
Сообщений: 724
23.09.2016, 08:51 8
leomessi10, держите
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SetLocal EnableExtensions EnableDelayedExpansion
echo off
 
set /p n=Enter n 
 
set prime=2
set /a cur=3
set /a cnt=1
 
:loopStart
for %%p in (%prime%) do (
    set /a r=%cur% %% %%p
    if !r!==0 goto exitFor
)
 
set prime=%prime% %cur%
set /a cnt+=1
if %cnt%==%n% goto finish
:exitFor
 
set /a cur+=2
goto loopStart
 
:finish
echo %prime%
pause
1
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 7
23.09.2016, 13:38  [ТС] 9
Программа выводит нечетные числа, а не простые
0
Модератор
2660 / 1837 / 404
Регистрация: 26.03.2015
Сообщений: 6,819
23.09.2016, 14:25 10
Цитата Сообщение от leomessi10 Посмотреть сообщение
Программа выводит нечетные числа, а не простые
Моя программа (в сообщении №6) выводит простые числа.
0
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 7
23.09.2016, 14:35  [ТС] 11
Ваша может и простые, но она написана на C#, а не в командной строке
0
89 / 86 / 11
Регистрация: 20.11.2008
Сообщений: 724
23.09.2016, 14:42 12
Цитата Сообщение от leomessi10 Посмотреть сообщение
Ваша может и простые, но она написана на C#, а не в командной строке
Нужно указывать, к кому обращаетесь, если обращаетесь к конкретному участнику
Мой скрипт тоже работает верно
1
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 7
23.09.2016, 15:35  [ТС] 13
Извините, работает Значит я где то недоглядел сначала.

Добавлено через 1 минуту
Я просто без первой строки запустил) и там выводил просто нечетные числа
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
30.09.2016, 09:09 14
leomessi10
Есть и другой вариант решения этой задачи.
Распечатайте нужное количество простых чисел в файл
прямого доступа. И вам останется только считывать
необходимые данные (более вычислять не придется).
1
7 / 7 / 0
Регистрация: 01.11.2016
Сообщений: 17
Записей в блоге: 207
05.01.2017, 21:03 15
Спасибо и поздравляю Вас с Новым годом. Вы пока единственный, кто прислал конкретное решение.
Непременно попробую проверить скорость работы присланной Вами программы, хотя есть возможности для значительного ускорения ее работы. При внимательном рассмотрении вы должны их заметить, они связаны с периодичностью появления определенных последовательностей байтов.
Хочу дать Вам совет не бросать эту тему. Возможно, она принесет Вам неожиданный успех, если Вы сможете увидеть все перспективы ее использования.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2017, 21:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Линейный алгоритм поиска простых чисел
Здравствуйте, помогите пожалуйста написать линейный алгоритм на языке си, желательно с...

Реализовать алгоритм поиска простых чисел
Реализовать алгоритм поиска простых чисел (&quot;Решето Эратосфена&quot;) до 200. Подскажите как плиз

Cоставить алгоритм поиска N простых чисел
составить алгоритм поиска N простых чисел

Эффективный алгоритм поиска простых чисел на С++
Хотел написать функцию которая вычисляет простое число или сложное, но оно не вычисляется. Цикл...

Процедура генерации простых чисел методом случайного поиска среди 128-битных чисел
Всем доброе время суток! Наткнулся на данную задачку Реализовать процедуру генерации простых...

Программа поиска простых чисел
Необходимо написать программу для поиска простых чесил в интервале от 1 до 100 на языке СИ.Простое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.