2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
||||||
1 | ||||||
Выдать K-е по счёту простое число10.06.2020, 18:20. Показов 21760. Ответов 26
Метки нет (Все метки)
Помогите доработать программу . пожалуйста. Простое число
По введённому натуральному числу K, не превосходящему 1000000, выдать K-е по счёту простое число. Входные данные Во входном файле находится одно натуральное число K. Выходные данные В выходной файл выведите K-е простое число. Примеры Ввод Вывод 3 5 1 2
0
|
10.06.2020, 18:20 | |
Ответы с готовыми решениями:
26
Вывести N-ое по счету простое число По введенному натуральному числу k, не превосходящему 100 000, выдать k-е по счету простое число По данному числу k найдите k-е по счету простое число Найти k по счету простое число (первым простым числом является 2) |
Диссидент
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
10.06.2020, 19:53 | 2 | |||||
dmitrii2000, ваш код мне не нравится от слова совсем. Так что дорабатывать я его не буду. А все намного проще
Добавлено через 9 минут Хотя, я понял, что вы делаете через решето Эратосфена. Да, это будет несколько быстрее. Но решето строится совсем не так. Достаточно использовать для его построения тип данных char. Еще лучше - bool, но я не знаю, насколько эффективно С++ работает с булевыми массивами. В элементе решета только 2 значения: 0 - число не простое, 1 - простое (можно и наоборот) Решето можно строить по ходу вычисления простых. Подумайте. Если будут сложности, постараемся вам помочь. ЗЫ. И код заключайте в теги языка. Умеете? Могу научить, это несложно. Добавлено через 5 минут dmitrii2000, основной цикл примерно такой, как я показал. Только с попутным заполнением решета. А IsPrim будет выглядеть поинтереснее. Так проверять на делимость надо только числа решета. Есть еще один путь. И он даже интереснее. По ходу дела создавать список простых.
0
|
0 / 0 / 0
Регистрация: 01.07.2019
Сообщений: 20
|
||||||
10.06.2020, 21:15 | 3 | |||||
0
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
|
10.06.2020, 21:32 | 4 |
Hikaru666, Выход за границу массива. И незачем выносить решето в глобальную область, задавая размер в двух местах.
0
|
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,107
|
|
10.06.2020, 22:17 | 5 |
Миллионное простое число: 15 485 863. Дальше просто. При запуске программы решето ищет все пр. числа до этого - это доли секунды. А потом перебором находим n-ное число в списке
0
|
Диссидент
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
10.06.2020, 22:34 | 6 | |||||
В строке 4 пропустил скобочку "{". Но успел поправиться
0
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
||||||
11.06.2020, 00:16 | 7 | |||||
Hikaru666, а чего не
0
|
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,107
|
|
11.06.2020, 09:13 | 8 |
Потому что миллионное простое число 15 485 863. 15 500 000 хватает с запасом.
0
|
0 / 0 / 0
Регистрация: 01.07.2019
Сообщений: 20
|
|
11.06.2020, 10:28 | 9 |
Не совсем понимаю, где выход за границу?
Добавлено через 30 секунд Выше ответили)
0
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
|
11.06.2020, 20:50 | 10 |
Hikaru666, у вас массив размером 15500000 и sieve_size = 15500000. Далее по коду
i примет значение 15500000, оператор if полезет проверять sieve[15500000]... а индекс массива у нас должен лежать в диапазоне [0, 15500000).
0
|
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,107
|
||||||
11.06.2020, 21:40 | 11 | |||||
i никогда не дойдёт до 15500000. Break сработает раньше.
Полностью цикл должен выглядеть примерно так:
0
|
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
|
|
11.06.2020, 21:46 | 12 |
alexu_007, речь о сообщении №3. Какой брейк там сработает?
0
|
Диссидент
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
12.06.2020, 10:02 | 13 | |||||
Небольшая модификация кода из поста 6
0
|
0 / 0 / 0
Регистрация: 01.07.2019
Сообщений: 20
|
|
12.06.2020, 10:52 | 14 |
0
|
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,107
|
|
12.06.2020, 12:04 | 15 |
Ошибки в строках 8 и 15 - не хватает скобки и скобка не та.
И работает медленно. 10-миллионное число (179424673) нашло за минуту! С помощью решета Эрастофена задача решается за 1,2 сек:
1
|
Диссидент
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
12.06.2020, 16:36 | 16 |
Спасибо за поправки!
и за критику спасибо! Это кажется несколько странным, но конечно, требует анализа и понимания. В принципе, все можно сделать и без векторов, на чистом Си. Может быть, вектор тормозит, хотя с чего бы это? В свободную минуту может быть займусь...
0
|
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,107
|
|
12.06.2020, 19:59 | 17 |
Что тут странного? Решето Эрастофена заточено для быстрого получения больших количеств простых чисел. А вы хотите угнаться за ним с помощью алгоритма, где простые числа добываются делением.
Решето "перелопачивает" 180 млн. обычных чисел, и "добывает" из них 10 млн. простых чисел за 0,78 секунды. При этом для сокращения потребления памяти в нём используется QBitArray, что наверняка не способствует быстродействию. Qt рулит!!!
1
|
AndryS1
|
12.06.2020, 21:00
#18
|
0
|
alexu_007
|
13.06.2020, 01:05
Выдать K-е по счёту простое число
#20
|
0
|
13.06.2020, 01:05 | |
13.06.2020, 01:05 | |
Помогаю со студенческими работами здесь
20
Дано простое число. Составить функцию,которая будет находить следующее за ним простое число. Дано простое число. Составить функцию, которая будет находить следующее за ним простое число. Дано простое число. Составить функцию, которая будет находить следующее за ним простое число Дано простое число. Составить функцию, которая будет находить следующее за ним простое число Дано простое число. Составить функцию, которая будет находить следующее за ним простое число Дано простое число. Составить функцию,которая будет находить следующее за ним простое число Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
|
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
|
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей
Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
|
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
|
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
|
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
|
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
|
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке
В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
|