10 / 10 / 1
Регистрация: 27.06.2013
Сообщений: 151
|
||||||
1 | ||||||
Алгоритм нахождения простых чисел21.07.2013, 16:52. Показов 13396. Ответов 38
Метки нет (Все метки)
Вопросы:
1) Нужен алгоритм проверки числа (является ли число простим). Нужно чтобы алгоритм был быстрым (нужно проделать 104 операций за 0.5 сек )!!!! 2) Почему мой алгоритм проверки не всегда дает верный ответ?
0
|
21.07.2013, 16:52 | |
Ответы с готовыми решениями:
38
Алгоритм нахождения простых чисел Алгоритм нахождения простых чисел Алгоритм нахождения ПРОСТЫХ чисел в файле Программа нахождения простых чисел |
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
|
|
21.07.2013, 17:01 | 2 |
че за хрень вы несете?
2) предположу, что у некоторых чисел могут быть другие делители, кроме этих 4. что касается вашего алгоритма, он назовет "простыми" как раз только составные числа. Добавлено через 2 минуты если речь шла о том, чтобы проверить 104 чисел, то при определенных ограничениях и обычный n*sqrt(n) зайдет.
1
|
10 / 10 / 1
Регистрация: 27.06.2013
Сообщений: 151
|
|
21.07.2013, 17:11 [ТС] | 3 |
0
|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
21.07.2013, 17:29 | 5 |
Kuzia domovenok, и что по твоему код рабочий?
http://codepad.org/yFCxb3JO
0
|
OhMyGodSoLong
|
21.07.2013, 17:35
#6
|
0
|
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
|
|||||||||||
21.07.2013, 17:38 | 7 | ||||||||||
категорически от вас требуется, чтобы проверка каждого числа на простоту выполнялась за корень. это выглядит так:
асимптотически, алгоритмы совершенно одинаковы, но в среднем второй должен работать в два раза быстрее.
1
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
21.07.2013, 17:38 | 8 |
Почему никто ещё не посоветовал сделать табличку первых 6000 простых чисел?..
0
|
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
|
|
21.07.2013, 17:41 | 9 |
как вы предлагаете это оптимизировать?
Добавлено через 1 минуту потому же, почему никто не посоветовал сделать прекалк на первый миллиард чисел.
0
|
21.07.2013, 17:41 | 10 | |||||
А? Что? э... Конечно!
http://codepad.org/pfuUgwLP
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||||
21.07.2013, 17:44 | 11 | |||||
Извините. Миллиард это много. А вот первые 6000 вполне влезут в кеш.
0
|
21.07.2013, 17:51 | 12 |
Об этом я, кстати задумывался, как об альтернативе i*i, но решил, что выигрыш скорости не будет существеннен.
а как же оптимизация sqrt?
Добавлено через 39 секунд Я это как раз понимаю, потому и не доверяю. А что такое SSE?
0
|
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
21.07.2013, 17:52 | 13 |
1. Она вызывается один раз.
2. Я уверен, что алгоритм Ньютона в стандартной библиотеке и так заоптимизирован донельзя. Я вообще в шутку это сказал, если что. SSE — это то, что позволяет выполнять по четыре деления за один раз, что затыкает за пояс все эти "& 1" и прочее.
0
|
Kuzia domovenok
|
21.07.2013, 17:55
#14
|
0
|
21.07.2013, 18:13 | 15 | |||||
Нашел на StackOverflow и внес незначительные изменения. ( http://stackoverflow.com/quest... r-is-prime )
Добавлено через 7 минут Без вывода ~ 132 ms. (уже на MinGW 4.8.1)
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
||||||
21.07.2013, 18:37 | 16 | |||||
Всякое простое число, большее 3, представимо в виде или , где — некоторое натуральное число.(с)Википедия Добавлено через 53 секунды конечно бесконечный цикл нужно убрать по-хорошему ) Добавлено через 2 минуты Выпали формулы =/ http://ru.wikipedia.org/wiki/Простое_число, там в разделе "Некоторые свойства" русским по белому написано это свойство натуральных чисел.
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 18:39 | 18 |
Всякое простое число, большее 3, представимо в виде 6k+1 или 6k-1, где k — некоторое натуральное число.(c)
Добавлено через 1 минуту Пардоньте, я знал, что википедии доверять нельзя
0
|
21.07.2013, 18:41 | 19 | |||||
вот, кое что было - игрался с С++11
0
|
21.07.2013, 18:41 | 20 |
Неужели в Википедии так и говориться? Дай ссылку.
Точнее ссылку я нашел, а где там такое сказано - нет.
0
|
21.07.2013, 18:41 | |
21.07.2013, 18:41 | |
Помогаю со студенческими работами здесь
20
Нахождения больших простых чисел Программа для нахождения простых чисел от 1 до 100 Написать программу нахождения первых 50 простых чисел Напишите программу нахождения всех трехзначных простых чисел Алгоритм поиска простых чисел Алгоритм отбора простых чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |