Показать сообщение отдельно

  #7  
Старый 10.10.2009, 00:32
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами: 8912059

Репутация: 249
По умолчанию

Цитата:
Сообщение от Nizhegorodets  
Язык : Pascal
"Произведение цифр"

найти минимальное положительное целое число Q такое, что произведение цифр числа Q в точности равняется N.

Целое число N (0 ≤ N ≤ 109).

Пример:
исходные данные:результат
10:25
12:26

Прошу подсказать алгоритм решения.Заранее спасибо.
Программа генерирует случайное N в заданном промежутке. Программа проверяет все числа от 10 до 999, если произведение цифр числа = N, то цикл будет прерван и программа выдаст число. Иначе сообщит что число не найдено.

Код:
program PROIZV_ZIFR;

var
intI,intC,N,Proizv,Code,tmpI:integer;
strA:string;

begin
randomize;
N:=random(110);
writeln('N randomly set in ',N);
intI:=0;
for intI:=10 to 999 do begin
str(intI,strA);
Proizv:=1;
for intC:=1 to length(strA) do begin
val(strA[intC],tmpI,Code);
Proizv:=Proizv*tmpI;
end;
if Proizv=N then break;
end;
if intI <> 999 then writeln('chislo(Q) = ',strA,' proizvedenie zifr = ',Proizv,' = ',N,'(N)')
else writeln('chislo proizvedenie zifr kotorogo = ',N,' ne naideno');
readln;
end.
Результат работы:

Код:
N randomly set in 49
chislo(Q) = 77 proizvedenie zifr = 49 = 49(N)

N randomly set in 7
chislo(Q) = 17 proizvedenie zifr = 7 = 7(N)

N randomly set in 103
chislo proizvedenie zifr kotorogo = 103 ne naideno
 
Ответить с цитированием