Напишите программу, которая вводит естественное число N и выводит на экран

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

Задать свой вопрос
2 ответа
// PascalABC.NET 3.2, сборка 1367 от 20.12.2016
// Внимание! Если программа не работает, обновите версию!

function NOK(a,b:integer):integer;
begin
  if a=b then Result:=a
  else begin
    var c:=a*b;
    repeat
      if agt;b then a:=a-b else b:=b-a;   
    until a=b;
    Result:=c div a
  end
end;

begin
  var n:=ReadInteger('N=');
  var L:=new Listlt;integergt;;
  var m:=n;
  while mgt;0 do begin
    var d:=m mod 10;
    L.Add(d);
    m:=m div 10
    end;
  var a:=L.Where(x-gt;xlt;gt;0).Distinct.ToArray;
  var k:=a[0];
  if a.Lengthgt;1 then
    for var i:=1 to a.Length-1 do k:=NOK(k,a[i]);
  Range(k,n,k).Println;
end.

Пример
N= 227
14 28 42 56 70 84 98 112 126 140 154 168 182 196 210 224

Как это работает?
Если число делится на каждое из нескольких чисел, то оно делится и на НОД этих чисел, Функция НОД дозволяет отыскать НОД пары чисел, а её применение несколько раз позволит найти НОД для нужного комплекта чисел.
Создаем объект типа "перечень целых" и цифра за цифрой помещаем туда числа, совпадающие с цифрами данного числа n. Затем просматриваем список и все уникальные элементы, за исключением нуля, заносим в массив а. Дальше вычисляем НОД для всех частей приобретенного массива.
Понятно, что первым в последовательности искомых чисел будет стоять НОД, а дальше пойдут числа, которые будут увеличиваться каждый раз на НОД, пока не достигнут n.
ОТДЕЛ Задание+;
ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Размен\", Приём;

ПЕР
  N, сч: ЦЕЛ;

Задачка Делится_на_числа(число: ЦЕЛ): КЛЮЧ;
ПЕР
  ч: ЦЕЛ;
УКАЗ
  ч := число;
  ПОКА ч gt; 0 ВЫП
    ЕСЛИ число ОСТАТОК (ч ОСТАТОК 10) 0 ТО
      ВОЗВРАТ ОТКЛ
    КОН;
    ч := ч ДЕЛИТЬ 10
  КОН;
  ВОЗВРАТ ВКЛ
КОН Делится_на_числа;

УКАЗ
  N := Приём.Число();
  ОТ сч := 1 ДО N ВЫП
    ЕСЛИ Делится_на_цифры(сч) ТО
      Вывод.ЧЦел("^%d", сч, 0, 0, 0)
    КОН
  КОН

КОН Задание.
Виктор Нечипайло
а можно это как то записать, как программку?
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт