|
0 / 0 / 1
Регистрация: 29.01.2015
Сообщений: 33
|
|
Найти первые 100 простых чисел24.11.2017, 22:55. Показов 13245. Ответов 17
Метки нет (Все метки)
0
|
|
| 24.11.2017, 22:55 | |
|
Ответы с готовыми решениями:
17
Дано натуральное число N. Найти первые N простых чисел Найти 100 первых простых чисел Найти 100 первых простых чисел |
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
||||||
| 24.11.2017, 23:23 | ||||||
|
3 секунды в гугле, и находим: Еще раз о поиске простых чисел.
Теперь пишем:
Добавлено через 4 минуты Все подобные задачи были решены программистами еще лет 60 тому назад.
1
|
||||||
|
0 / 0 / 1
Регистрация: 29.01.2015
Сообщений: 33
|
|
| 24.11.2017, 23:30 [ТС] | |
|
Не совсем то, мне нужно сделать что бы что бы был только int main ()
0
|
|
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
||||||
| 24.11.2017, 23:42 | ||||||
|
Ну так, это, вперед. Читаем код, видим, что вместо if (isprime(i)) должна стоять функция, которая выше, и думаем как же затолкать туда этот код? Неужто вот так?
1
|
||||||
|
0 / 0 / 1
Регистрация: 29.01.2015
Сообщений: 33
|
|
| 24.11.2017, 23:49 [ТС] | |
|
Ваша программа ищет простые числа до 100, а нужно 100 первых простых чисел!
0
|
|
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
|
| 24.11.2017, 23:50 | |
|
Ну так опять же... вперед.
Проявляем инициативу, вытаскиваем голову из песка и начинаем уже думать. Тем более, что уже все есть и разжевано.
3
|
|
|
0 / 0 / 1
Регистрация: 29.01.2015
Сообщений: 33
|
|
| 24.11.2017, 23:52 [ТС] | |
|
Спасибо за помощь)
0
|
|
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
|||||||||||
| 25.11.2017, 12:41 | |||||||||||
Сообщение было отмечено Dron_4r как решение
Решение
Как бы я думал над этой задачей?
Cейчас цикл выполняет ровно 100 повторений, и находит при этом сколько-то ответов. Сколько именно ответов он находит, я не знаю. Значит, во-первых, мне нужно считать количество найденных ответов. Ну а чтобы что-нибудь посчитать, мне нужна еще одна переменная. Окей, назову ее counter. Теперь, что еще надо сделать? Когда цикл находит какое-то значение, он выводит найденное число на экран. А мне нужно, чтобы он еще и считал сколько ответов он нашел. Ага, кажется вместе с выводом найденного числа на экран, я должен увеличивать counter на единицу. Ну, это вроде бы просто. Так, а что еще мне надо сделать? Цикл должен работать не до тех пор, пока i<101, а до тех пор, пока counter<100. От оно как, вот в чем дело-то оказывается! Ну, кажется все, что нужно, у меня уже есть, осталось только написать:
Хоть программа и выглядит рабочей и даже что-то считает, делает она это довольно медленно. Например, любое четное число не будет простым, тем не менее, мы проверяем все четные числа. Значит, если исключить все четные, то программа уже будет выполнять меньше действий. Чтобы это сделать, достаточно заменить i++ на i+=2 в цикле. Добавлено через 11 часов 29 минут Однако, если мы просто заменим счетчик цикла на i+=2, наша программа будет работать с ошибкой. Почему? Потому, что число 2 тоже является простым, т.е. 2 делится на 1 и на саму себя, но наш цикл будет пропускать число 2. Иными словами нам нужно изменить цикл так, чтобы он пропускал 1, считал 2 простым и при этом работал только с нечетными числами. Т.е. менять счетчик в цикле мы не можем, в смысле цикл должен начинаться с 1, счетчик должен быть i+=2, чтобы исключить все четные. Но нам нужно как-то добавить исключение для числа 2. Для этого мы можем изменить сам цикл. Если у нас i = 1, мы изменим его на 2 и дадим циклу его проверить, число пройдет проверку, counter изменится на 1 и все будет просто отлично. Но если мы после этого добавим еще одно условие, которое будет проверять i == 2 и будет менять i на 1, чтобы в конце первой итерации получить i = 1+2, мы добавим в цикл еще одно действие, плюс лишнюю проверку при i=2, т.е. на каждом шаге будет проводиться еще одна проверка условия, а нам это не нужно, поскольку цикл и без того выполняет лишние действия, поэтому мы немного подправим само условие при i == 1, например вот так:
2
|
|||||||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||||||||||
| 25.11.2017, 13:22 | |||||||||||
|
Можно еще предложить такой вариант (тоже несложно для восприятия новичков)
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
|
|
| 29.11.2017, 20:43 | |
|
Привет,вот в этом коде как можно добиться чтоб последнее выведенное простое число не имело после себя пробела? тоесть вывод примерно такой : 2 3 5 7 11 ........ 541(после 541 нет пробела и курсор останавливается сразу после 541) @stake-k26
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||
| 29.11.2017, 21:20 | |||
|
0
|
|||
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
||||||
| 29.11.2017, 21:32 | ||||||
|
RedRaider, если необходимо вывести n простых чисел с начала, и n заранее известно, то смотреть не равен ли counter n-1, например:
0
|
||||||
| 29.11.2017, 21:38 | |
|
Не по теме: stake-k26, да, если мы уж взялись в этом участвовать, надо запастись мудростью и терпением.:)
0
|
|
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
|
| 29.11.2017, 21:45 | |
|
Другой вопрос зачем так извращаться? Терминалу все едино, есть пробел в конце или нет. Если записывать результат в строку, то после всех записей в строку, т.е. после цикла, можно просто стереть последний пробел. Займет куда меньше времени.
Не по теме: Байт, и не говори. :)
1
|
|
|
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
|
||||||
| 30.11.2017, 08:18 | ||||||
|
Спасибо за объяснение.Нет, у меня n заранее неизвестен, его надо вводить, немного изменил код, но платформа где всё это проверяется выдаёт ошибку (это домашка), а ошибка состоит в том что в самом конце есть пробел(его не должно быть).@stake-k26
тебя спрашивали ? @Байт
0
|
||||||
|
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
|
||||||||||
| 30.11.2017, 15:10 | ||||||||||
Не по теме:
1
|
||||||||||
| 30.11.2017, 15:24 | |
|
Не по теме: Записывать, блин, надо... Память совсем дырявая стала... Или какой-нибудь юзер-скрипт сварганить со списком обидчиков...:p
0
|
|
|
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 51
|
|
| 30.11.2017, 15:30 | |
|
Спасибо.... и всем пис
0
|
|
| 30.11.2017, 15:30 | |
|
Помогаю со студенческими работами здесь
18
Найти первые 15 чисел, больших 100, которые делятся на 19 без остатка Распечатать первые n простых чисел Вывести первые n простых чисел Напечатать первые k пар простых чисел Вывести на экран первые n простых чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|