Вопрос № 178530: Здравствуйте. Задача по комбинаторике. В среде Turbo Pascal написать программу (исп. процедуры и функции) разгадки числового ребуса СССР=Р^Ф....
Вопрос № 178530:
Здравствуйте. Задача по комбинаторике. В среде Turbo Pascal написать программу (исп. процедуры и функции) разгадки числового ребуса СССР=Р^Ф.
Отвечает lamed, Профессионал :
Здравствуйте, воронова любовь! Программа проверялась на Turbo 7 и ABC. Идея решения и комментарии в тексте Результат работы: 7776=6^5
Код:
program p178530; { Программа - разгадка числового ребуса СССР=Р^Ф } { Идея решения: перебрать все четырехзначные числа вида XXXY и выяснить, не
является ли какое-то из них степенью Y. } var i, j: integer; { счетчики начальных и последней цифр } tested: integer; { тестируемое число } r: integer; { показатель степени (или минус единица) }
function TryPower(val: LongInt; n: integer): integer; { Если число n=1 или val не является степенью числа n, возвращается -1 } { В противном случае возвращается показатель степени } var p: LongInt; i: integer; begi
n if n=1 then TryPower := -1 else begin p:= n; i:= 1; while p<val do begin p:=p*n; i:= i+1; end; if p=val then { n^i==val } TryPower := i else TryPower := -1; end; end; { TryPower }
begin { main } for i:= 1 to 9 do { начальные цифры } for j:= 1 to 9 do { последняя цифра } if j<>i then begin { последняя цифра отличается
от первой } tested := 1110*i+j; r := TryPower(tested, j); if r in [2..9] then writeln(tested, '=', j, '^', r); end; readln; end.
Ответ отправил: lamed, Профессионал
Ответ отправлен: 21.05.2010, 13:30
Номер ответа: 261544
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261544
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.