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

Ответы 6

  • а можно это как то записать, как программу?
  • А это что, не программа, что ли?
    • Автор:

      flores
    • 6 лет назад
    • 0
  • Как иначе её записать?
  • Это чтобы Вы в будущем указывали язык программирования, на котором программу желаете.
  • ОТДЕЛ Задание+;ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\", Приём;ПЕР  N, сч: ЦЕЛ;ЗАДАЧА Делится_на_цифры(число: ЦЕЛ): КЛЮЧ;ПЕР  ч: ЦЕЛ;УКАЗ  ч := число;  ПОКА ч > 0 ВЫП    ЕСЛИ число ОСТАТОК (ч ОСТАТОК 10) # 0 ТО      ВОЗВРАТ ОТКЛ    КОН;    ч := ч ДЕЛИТЬ 10  КОН;  ВОЗВРАТ ВКЛКОН Делится_на_цифры;УКАЗ  N := Приём.Число();  ОТ сч := 1 ДО N ВЫП    ЕСЛИ Делится_на_цифры(сч) ТО      Вывод.ЧЦел("^%d", сч, 0, 0, 0)    КОН  КОНКОН Задание.
  • // 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 a>b then a:=a-b else b:=b-a;       until a=b;    Result:=c div a  endend;begin  var n:=ReadInteger('N=');  var L:=new List<integer>;  var m:=n;  while m>0 do begin    var d:=m mod 10;    L.Add(d);    m:=m div 10    end;  var a:=L.Where(x->x<>0).Distinct.ToArray;  var k:=a[0];  if a.Length>1 then    for var i:=1 to a.Length-1 do k:=NOK(k,a[i]);  Range(k,n,k).Println;end.ПримерN= 22714 28 42 56 70 84 98 112 126 140 154 168 182 196 210 224Как это работает?Если число делится на каждое из нескольких чисел, то оно делится и на НОД этих чисел, Функция НОД позволяет найти НОД пары чисел, а её применение несколько раз позволит найти НОД для необходимого набора чисел.Создаем объект типа "список целых" и цифра за цифрой помещаем туда числа, совпадающие с цифрами заданного числа n. Затем просматриваем список и все уникальные элементы, за исключением нуля, заносим в массив а. Далее вычисляем НОД для всех элементов полученного массива.Понятно, что первым в последовательности искомых чисел будет стоять НОД, а далее пойдут числа, которые будут увеличиваться каждый раз на НОД, пока не достигнут n.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years