|
0 / 0 / 0
Регистрация: 31.08.2013
Сообщений: 26
|
|
Алгоритм, который устанавливает – является ли число простым01.04.2015, 14:27. Показов 27769. Ответов 24
Метки нет (Все метки)
5. Алгоритм, который устанавливает – является ли число N
простым. Число называется простым, если оно делится нацело без остатка только на себя и на 1.
0
|
|
| 01.04.2015, 14:27 | |
|
Ответы с готовыми решениями:
24
Является ли число простым
Определить, является ли число простым |
|
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
|
||||||
| 01.04.2015, 18:36 | ||||||
Сообщение было отмечено Памирыч как решение
Решение
1
|
||||||
|
15 / 15 / 12
Регистрация: 01.02.2014
Сообщений: 62
|
||||||
| 01.04.2015, 18:36 | ||||||
Сообщение было отмечено Памирыч как решение
Решение
1
|
||||||
|
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
|
|
| 01.04.2015, 19:27 | |
|
kukuryza, есть ляп:
введите число n 1 число не является простым
1
|
|
|
15 / 15 / 12
Регистрация: 01.02.2014
Сообщений: 62
|
|
| 01.04.2015, 19:57 | |
|
поставить условие что если введено 1 то простое
0
|
|
|
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
|
|
| 02.04.2015, 00:11 | |
|
Joy, по определению, число 1 простым не является.
Просто́е число́ — это натуральное число, большее единицы, имеющее ровно два натуральных делителя: 1 и само себя.
1
|
|
|
Модератор
|
||||||
| 02.04.2015, 08:29 | ||||||
|
Joy,
Добавлено через 1 минуту Плюс, можно отдельно проверить на 2, а потом только на нечетные, вдвое сократит количество делений. Добавлено через 2 минуты А можно втихаря составлять табличку простых и проверять делимость только на них, будет еще быстрее. Но алгоритм выйдет несколько запутаннее.
3
|
||||||
|
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
|
||||||
| 02.04.2015, 08:56 | ||||||
1
|
||||||
|
Модератор
|
||||||
| 02.04.2015, 10:18 | ||||||
|
Вариация на тему:
1
|
||||||
|
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
|
||||||
| 02.04.2015, 15:18 | ||||||
0
|
||||||
|
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
|
||||||
| 02.04.2015, 18:01 | ||||||
|
bormant, Joy, "немножко" соптимизировать можно:
1
|
||||||
|
Модератор
|
||||||
| 02.04.2015, 18:42 | ||||||
|
Новичок,
не надо так писать:
Во 2-х, незачем Round() (возможен лишний шаг), когда достаточно Trunc().
1
|
||||||
|
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
|
|
| 03.04.2015, 03:04 | |
|
Cyborg Drone, хорошая формула, спасибо, не знал
0
|
|
|
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
|
||||||
| 08.04.2015, 21:57 | ||||||
|
Формула, однако, особенного выигрыша не даёт. На её основе у меня вот что нарисовалось:
Добавлено через 14 минут Хотя... При обработке массива чисел будут исключаться n < 25 и четыре числа из шести... Не так уж и плохо. Ну что, люди, раскритикуйте меня, что ли, а то у меня, подозреваю, ложное, самомнение что-то зашевелилось...
0
|
||||||
|
Модератор
|
||||||
| 08.04.2015, 23:25 | ||||||
|
Может быть проверить делимость тестируемого числа на 2,3,5, а потом делать приращение не inc(i,2) а
1
|
||||||
|
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
|
|||
| 09.04.2015, 03:01 | |||
|
У меня там тоже 2-4, только не столь эффективное, как У Вас. Я всё думал, как произвести инкремент числа то на 2, то на 4, исходя из самого i, ничего толкового не придумал, кроме того, что числа, которые требуется исключить, делятся на 3 нацело: 5, 7, 9, 11, 13, 15, 17, 19, 21, 23... и до Вашего варианта не дошёл, хотя, про xor мысль мелькала. Однако, вопрос об эффективности алгоритма с перебором делителей: фактически, 2-4 исключает из рассмотрения каждое третье нечётное число. Ну и, что имеем с гуся на каждые три числа? 3 * mod + 3 * inc = 3 * idiv + 3 * add = 3 * 4 + 3 * 1 = 15 - если делить на каждое нечётное; 2 * mod + 2 * inc + 2 * xor = 2 * idiv + 2 * add + 2* xor = 2 * 4 + 2 * 1 + 2 * 1 = 12 - Ваш вариант. Ну что, несколько поэффективней будет... Для ABC не подходит, но у меня он всё равно не стоит и я его ненавижу. Спасибо.
1
|
|||
|
Модератор
|
|
| 09.04.2015, 21:07 | |
|
Да, приращение небольшое - всего 33%...
Но программа с таким алгоритмом уже интереснее и оригинальнее перебора всех чисел. Формулу для описания простых чисел я знал ещё со школы, но как ею воспользоваться увидел только вчера ![]() Спасибо!
0
|
|
|
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
|
||||||
| 09.04.2015, 22:28 | ||||||
|
Ну и, окончательный вариант, мало ли, вдруг кому два фрагмента в один ну никак не сообразится:
0
|
||||||
|
Модератор
|
||||||
| 10.04.2015, 00:10 | ||||||
Сообщение было отмечено Cyborg Drone как решение
Решение
Cyborg Drone,
На мой вкус, чуть поправил бы. Если положить до проверки IsPrime:=False, то по нахождению делителя можно сразу выйти по Exit, а если дожили до завершения цикла -- присвоить IsPrime True:
3
|
||||||
|
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
|
|
| 10.04.2015, 01:41 | |
|
Да, и на мой вкус так лучше.
0
|
|
| 10.04.2015, 01:41 | |
|
Помогаю со студенческими работами здесь
20
Определить, является ли заданное число простым является ли заданное натуральное число n простым Является целое число, введенное пользователем простым. Является целое число, введенное пользователем простым. Является ли введенное пользователем натуральное число простым Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|