Задача о минимальном числе с изв. к-вом делитей. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача о минимальном числе с изв. к-вом делитей. |
Digitalator |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
Я тут почитал задачки, на форуме - все простенькие такие.
Дать вам одну для разминки серого вещества ? собственно сабж - дано некоторое число n E [1,1000], найти минимальное число имеющее ровно n делителей (любых, без повторений). Все бы ничего, но - таймлимит 5 сек на P3 500... использовать не больше 640кб мозгов... вот так У меня там еще задачки были, посложнее потом откопаю.... -------------------- |
zx1024 |
Сообщение
#2
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
Если считать само число и 1, то 2^(n-1).
Куда уж меньше. Делителями будут числа 2^i, где i=0,...,(n-1). |
Digitalator |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
Перед тем как отвечать, подумай и проверь! Твое "решение" в корне не верно!
например, нужно 4 делителя - по твоей "схеме" получаетс 2^(4-1)=8, а на самом деле 6 - тут делители 1,2,3,6 -------------------- |
zx1024 |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
Цитата Твое "решение" в корне не верно! С "корнем" ты загнул. Для простых n верно. |
zx1024 |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
Да, с "корнем" ты, действительно, загнул.
Придумал я алгоритм. И там, показанная ранее "схема", является основой решения. Давай тесты, если есть. Где n побольше. Ессно с ответами. |
Digitalator |
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
покажи алгоритм
а лучше прогу, чтоб можно было сразу на таймлимит проверить PS: ну с корнем я можь и загнул - 2^n первое что всем лезет в голову, но верно, как правильно заметил, только для простых Сообщение отредактировано: Digitalator - -------------------- |
zx1024 |
Сообщение
#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 на простые множители. Сортировка (очень маленького массива). Возведение в степень и произведение больших чисел. |
Altair |
Сообщение
#8
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Digitalator, сформулируйте пожалуйста уловие точнее...
Я правильно понял: Дано: Целое число n из промежутка [1,1000] Требуется: Нати минимальное целое, положительное число, имеющее n делитетей. (n заданно). -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Digitalator |
Сообщение
#9
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
Да. а где неточно условие?
to zx1024 Вроде как все правильно... но надо еще проверить... ;) -------------------- |
Altair |
Сообщение
#10
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Все ясно.... к сожалению меня лишили возможности думать над этот задачей, показав рещение
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Текстовая версия | 11.01.2025 5:31 |