IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача о минимальном числе с изв. к-вом делитей.
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Я тут почитал задачки, на форуме - все простенькие такие.
Дать вам одну для разминки серого вещества rolleyes.gif ?

собственно сабж - дано некоторое число n E [1,1000], найти минимальное число имеющее ровно n делителей (любых, без повторений).
Все бы ничего, но - таймлимит 5 сек на P3 500... использовать не больше 640кб мозгов... вот так smile.gif

У меня там еще задачки были, посложнее потом откопаю.... smile.gif


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Если считать само число и 1, то 2^(n-1).
Куда уж меньше.
Делителями будут числа 2^i, где i=0,...,(n-1).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Перед тем как отвечать, подумай и проверь! Твое "решение" в корне не верно!
например, нужно 4 делителя - по твоей "схеме" получаетс 2^(4-1)=8, а на самом деле 6 - тут делители 1,2,3,6


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Цитата
Твое "решение" в корне не верно!

С "корнем" ты загнул. Для простых n верно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Да, с "корнем" ты, действительно, загнул.
Придумал я алгоритм. И там, показанная ранее "схема", является основой решения.
Давай тесты, если есть. Где n побольше. Ессно с ответами.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


покажи алгоритм smile.gif
а лучше прогу, чтоб можно было сразу на таймлимит проверить

PS: ну с корнем я можь и загнул - 2^n первое что всем лезет в голову, но верно, как правильно заметил, только для простых

Сообщение отредактировано: Digitalator -


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Лень прогу писать.
Нужен массив простых чисел (чтоб в проге не считать)- B (по возраст.).
B = 2,3,5,7,11,13,...
Надо разложить n на простые множители и 8(пусть они k1...kj) и составить массив A. A[i] = k[i]-1. 8 - критич. число. Для неё в A добавляется 3 и 1. Сортируем A по убыванию.
Ответом будет произведение B[i]^A[i].
Пример n = 28 = 7*2*2.
A = 6,1,1. Ответ - 2^6 * 3^1 * 5^1 = 960.
n = 16 = 8 * 2.
A = 3,1,1. Ответ - 2^3 * 3 * 5 = 120.
Поэтому я и просил тесты. Мож ещё где (кроме 8) не работает общая схема.

Время. Разложение числа до 1000 на простые множители. Сортировка (очень маленького массива). Возведение в степень и произведение больших чисел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Digitalator, сформулируйте пожалуйста уловие точнее...
Я правильно понял:
Дано:
Целое число n из промежутка [1,1000]

Требуется:
Нати минимальное целое, положительное число, имеющее n делитетей. (n заданно).


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Да. а где неточно условие?

to zx1024
Вроде как все правильно... но надо еще проверить... ;)


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Все ясно.... к сожалению меня лишили возможности думать над этот задачей, показав рещение sad.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.01.2025 5:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name