Шифр, Freepascal |
Шифр, Freepascal |
Length |
12.12.2007 8:24
Сообщение
#1
|
Гость |
В звязку с тем, что фермеры Диетенко и Вампиров много занимались вычислениями, они очень любили разные числовые головоломки. Особенно любили обмениваться шифрованными сообщениями электронной почтой. Ключ к шифру нужно было вычислить как можно быстрее, потому что сообщение сохранялось в почтовом ящике лишь два дня. Однажды фермер Диетенко прислал фермеру Вампирову дежурную шифровку и некоторое целое число N. Ключом к шифру было менее всего положительное целое число, произведение цифр которого равняется N. Помогите фермеру Вампирову прочитать сообщение. Входные данные: в текстовом файле Z1.dat содержится число N (0<=N<=2147483647) Выходные даны: в текстовый файл Z1.sol записать искомое целое число или 0, если такого числа нет.
|
Client |
12.12.2007 8:33
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
А ты поиском пользовался? Там много раз решалось
Покаж свой код, чем сможем - поможем |
Lapp |
12.12.2007 11:31
Сообщение
#3
|
|||
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Malice |
12.12.2007 14:06
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Делать перебором.. Только оне все числа подряд, а с ограничениями как всегда, например: в числе не должно быть 0 и 1, не переберать одинаковые варианты (числа 123 и 321 нет смысла проверять, достаточно только одного, для этого достаточно условия - каждый следущий разряд >= предыдущему). Тогда перебор всего диапазона будет не больше секунды
|
Гость |
12.12.2007 23:08
Сообщение
#5
|
Гость |
Если чесно я сам еще не собразил думал што вы мне поможите ее сообразить вообще ничего не получаетса я пробувал всякое што мне приходило в голову...Если сможете помогите или хотябы подкиньте идейку как мне ее зделать?
var n,x,i:longint; begin readln(n); for i:=2 to n-1 do if (n mod i)=0 then x:=i; writeln(n/x,' ',x); end. |
Malice |
12.12.2007 23:52
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Не.. Это тебе надо для числа n, найти такое, что произведение всех чисел входящих в его состав=числу N.
Например n=2142770112. Искомое число=7889999999, т.к. 7*8*8*9*9*9*9*9*9*9=2142770112. |
Текстовая версия | 16.06.2024 16:50 |