Другие языки программирования и технологии

помогите решить задачу по паскалю не знаю как делать вообще

Составьте программу вывода на экран всех натуральных чисел, не превосходящих N и делящихся на каждую из своих цифр (используя процедуры или функции).
Надо еще проверить, что если в числе есть цифра 0, то такое число не подходит, так как на 0 делить нельзя.
Вообщем, вот вам работающая программа с функцией, которая проверяет, делится ли число на каждую свою цифру (кроме 0). А программа выдает все такие числа от 1 до N.

program aaa;
Var i, N :integer;
function delenie(x:integer):boolean;
Var
a:integer;
rez: boolean;
begin
rez:=true;
while x <> 0 do
begin
a:=x mod 10; {последняя цифра}
if (a=0) or (x mod a <>0) then begin rez := False; Break; end;
x := x div 10; {отбрасываем последнюю цифру}
end;
delenie:=rez;
end; {конец функции}

begin
write('Введите число N ');
readln(N);
for i:=1 to N do
begin
if delenie(i) then write(i, ' ');
end;
end.
Григорий Мшанецкий
Григорий Мшанецкий
56 353
Лучший ответ
Просто ее делать.

Цикл от 1 до n. На каждой итерации цикла делаете предположение, что очередное число делится на свои цифры, а затем проверяете это. Если при проверке предположение не подтверждается, то переходите к следующему числу, а если число прошло проверку, то выводите его.

for i:=1 to N do begin
m := i;
IsOk := True;
while m > 0 do begin
if i div (m mod 10) <> 0 then begin IsOk := False; Break; end;
m := m div 10;
end;
if IsOk then WriteLn(i);
end;

Примерно так...
На мыло напиши, могу помочь