
10.10.2009, 00:32
|
|
Участник форума
Регистрация: 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
|
|
|