|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.10.2010, 18:59 | #1 |
Пользователь
Регистрация: 22.10.2010
Сообщений: 12
|
не совсем простые числа
Я бы не сказал что я новичок в этом деле, но и до уровня совсем одупляющегося програмиста я тоже пока не дорос. Учусь в 11 классе. к олимпиаде готовлюсь, работаю на паскале и только на паскале. Вот задача принцип решения я знаю, но всё дело в том, что она связана с большими числами и поэтому паскалю нехватает места даже если использовать longint, но может паскаль можно как-то обмануть? Вот суть задачи "
простых чисел бесконечно много но нас будут интересовать только те у которых цифры идут в порядки возрастания (например 17, 2347) таких чисел всего сто и последние сотое равно 23456789. Требуется написать программу, которая находит N-ое простое число с возрастающими цифрами" Помогите плис. icq 408132450-если не понятно |
22.10.2010, 19:27 | #2 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
а, тип 123456789?Ну, чисто длинная арифметика.
|
22.10.2010, 20:21 | #3 |
Пользователь
Регистрация: 22.10.2010
Сообщений: 12
|
ну где ваши предложения друзья?
|
23.10.2010, 00:26 | #4 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Плоские алгоритмы поиска простых чисел, типа Эратосфена, не пройдут по времени.
Но раз чисел всего 100, и они в таких пределах... На реальных соревнованиях я бы просто написал прекалк, нашел тем же Эратосфеном все простых числа такого вида (в секунду вложить нереально, но даже самая примитивная реализация работает, очевидно, меньше минуты... и даже меньше полминуты), загнал константами, и получал бы ответ на запросы пользователя за О(1). |
23.10.2010, 10:50 | #5 |
Пользователь
Регистрация: 22.10.2010
Сообщений: 12
|
Да нет, ты наверно не понял суть моего вопроса, решить её можно как угодно ( в частности с помощью Эратасфена) вопрос времени меня пока не интересует, дело в том что паскаль не считает большие числа к примеру если писать программу через Эратасфена то он найдёт сравнительно маленькие числа например 17,234 а к примеру а[96] он не выдаст, так как просто его не найдёт в связи со своей маленькой памятью.
Ну а перебором это просто не рационально и тупо. |
23.10.2010, 11:40 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Вам же сразу в пост #2 дали ответ:
используйте длинную арифметику! примеров полно (в том числе и на форуме) |
23.10.2010, 13:47 | #7 | ||
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Цитата:
Цитата:
Числа совсем не большие, раз все цифры в возрастающем, то их не больше 9 (цифр), а это всегда в 4байтовом типе. |
||
24.10.2010, 19:45 | #8 |
Пользователь
Регистрация: 22.10.2010
Сообщений: 12
|
нам достаточно массив булей на 24 миллиона
вы хотите сказать что я могу описать массив так допустим. a: array[1..24000000]of boolea; ??????????????? Да фиг там, он компиляцию в этом месте не проходит, для него 24000000 слишком много, вот 24000 пропускает, но это для меня мало .......но у меня версия 7.0 стоит я не знаю какая у вас |
24.10.2010, 21:50 | #9 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
в паскале же есть длинные целые числа, мне сейчас лень лезть за справочником. Но вот в С++ тип int до 32767 unsigned int 65535 число 23456789 действительно не входит
но есть ведь long int и там наибольшее число это 2147483647 вот тут нужное число уже легко входит, а есть ведь еще unsigned long int... ну на крайний случай можно и дробные числа использовать. Зачем вам массив на 24 миллиона элементов вообще не догнал. а вот посмотрел: http://pascal.guti.ru/types.html Цитата:
Код:
как видно хватает массива из 10 элементов, куда вы хотите засунуть 24 миллиона элементов я даже не догадываюсь, поясните пожалуйста )) Последний раз редактировалось Stilet; 03.11.2010 в 13:27. |
|
24.10.2010, 22:31 | #10 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
а 23456789 это 105 число, соответствующее условию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Простые числа. С++ | mephistophel | Помощь студентам | 3 | 03.02.2011 22:12 |
простые числа | Koko Shanel' | Помощь студентам | 2 | 08.09.2010 01:13 |
Простые числа | Verochka | Помощь студентам | 14 | 02.12.2008 20:30 |
Простые числа | werser | Помощь студентам | 8 | 18.06.2008 07:24 |