Помогите пожалуйста, очень срочно. Составьте программу ** Паскале(с помощью циклических...

0 голосов
30 просмотров

Помогите пожалуйста, очень срочно.
Составьте программу на Паскале(с помощью циклических алгоритмов (простых и вложенных),используя операции целочисленной арифметики):
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.
И если можно, добавьте описание к строчкам, чтобы понять, что Вы делали; просто не всегда бывает понятна суть программы. Заранее спасибо).


Информатика (81 баллов) | 30 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var N,B,k:integer;
Begin
Write('N = ');ReadLn(N);
Write('Искомые числа:');
For N:= 1 to N do
    Begin
    B:=N;
    k:=1;
    // перед каждой проверкой k:=1
    // и если число не делится на любую из своих цифр, то k:=0
    While B > 0 do
       Begin
       if B mod 10 = 0 then k:=0
       // B mod 10 - это остаток от деления B на 10
       // то есть, например, 123 mod 10 = 3
       else if N mod (B mod 10) > 0 then k:=0;
       B:=B div 10
       // целая часть от деления B на 10
       // 123 div 10 = 12
       End;
    if k = 1 then Write(' ',N)
    End;
End.

(34.0k баллов)