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

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

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

 
 Ответить  Открыть новую тему 
> Задача о минимальном числе с изв. к-вом делитей.
Digitalator
сообщение 28.10.2004 22:03
Сообщение #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 
 К началу страницы 
+ Ответить 
zx1024
сообщение 28.10.2004 23:24
Сообщение #2


Пионер
**

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

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


Если считать само число и 1, то 2^(n-1).
Куда уж меньше.
Делителями будут числа 2^i, где i=0,...,(n-1).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 29.10.2004 20:22
Сообщение #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 
 К началу страницы 
+ Ответить 
zx1024
сообщение 30.10.2004 1:10
Сообщение #4


Пионер
**

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

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


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

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


Пионер
**

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

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


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


Бывалый
***

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

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


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

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

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


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 30.10.2004 23:27
Сообщение #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 
 К началу страницы 
+ Ответить 
Altair
сообщение 31.10.2004 9:09
Сообщение #8


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

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

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


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

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


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


Бывалый
***

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

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


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

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


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


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

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

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


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


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

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

 

- Текстовая версия 28.07.2025 12:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"