В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
рол145
рол145
25.07.2021 18:25 •  Информатика

Кто можешь написать программу(делфи)?


Кто можешь написать программу(делфи)?

Показать ответ
Ответ:
// 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
  end
end;

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= 227
14 28 42 56 70 84 98 112 126 140 154 168 182 196 210 224

Как это работает?
Если число делится на каждое из нескольких чисел, то оно делится и на НОД этих чисел, Функция НОД позволяет найти НОД пары чисел, а её применение несколько раз позволит найти НОД для необходимого набора чисел.
Создаем объект типа "список целых" и цифра за цифрой помещаем туда числа, совпадающие с цифрами заданного числа n. Затем просматриваем список и все уникальные элементы, за исключением нуля, заносим в массив а. Далее вычисляем НОД для всех элементов полученного массива.
Понятно, что первым в последовательности искомых чисел будет стоять НОД, а далее пойдут числа, которые будут увеличиваться каждый раз на НОД, пока не достигнут n.
0,0(0 оценок)
Ответ:
карина2153
карина2153
10.05.2020 09:35

1) Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ю степень, где N - количество цифр в числе, равна самому числу. Напримерт153=1^3 5^3 3^3. Найдитетвсе трехзначныеии четырехзначныеичисла Армстронга

var a,b,c,d,a2:integer;

begin

for a:=100 to 9999 do begin

d:=0;

a2:=a;

while (a2 <> 0) do begin

b:= a2 mod 10;

a2:= a2 div 10;

if a<1000 then c:= (b*b*b)

else c:=(b*b*b*b);

d:= d+c;

end;

if (a = d) then writeln('число армстронга ==> ', a);

end;

end.

2)Авmoморфные числа. Натуральное число называется автоморфным, если оно равно последним цифрам своего квадрата. Например: 25 и 625. Напишите программу, которая вводит натуральное число N и выводит на акран все автоморфные числа, не превосходящие N.

var n,i,l:integer; s1,s2:string;

begin

write('n = '); readln(n);

for i:=1 to n do

begin

str(i,s1);

l:=length(s1);

str(i*i,s2);

if s1=copy(s2,length(s2)-l+1,l) then writeln(i,' ',i*i);

end;

end.

3)Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

var a,b,nod,k:integer;

begin

readln(a,b);

k:=0;

while (a<>0)and(b<>0) do

begin

if a>b then a:=a mod b else b:=b mod a;

k:=k+1;

end;

nod:=a+b;

writeln(nod,' ',k);

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота