vvb1383
?>

Блок - алгоритмическая схема нахождения суммы последовательности натуральных чисел, начинающийся с единицы

Информатика

Ответы

Janaz842060

Извиняюсь, а в чем собственно вопрос?

akbmaslafarkop3175
Const
n=10; m=7;
var
j,i,i_max,s,max:integer;
a:array[1..n,1..m]of integer;
begin   
 for i:=1 to n do     
    begin         
           writeln; s:=0;i_max:=i;max:=-32768;             
           for j:=1 to m do               
                begin                       
                   a[i,j]:=random(100)-50;                       
                   write(a[i,j]:4);                     
                          s:=s+a[i,j];               
               end;               
                 writeln('i: ',i,'  ',s);            
                    if s>max then             
                               begin               
                                    i_max:=i;               
                                    max:=s;             
                               end;       
                end;
  writeln; 
   writeln(i_max,'  s: ',max);
end.
irina611901
// 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.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Блок - алгоритмическая схема нахождения суммы последовательности натуральных чисел, начинающийся с единицы
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

srgymakarov
muraveiynik
kris5009646
tushina2020
nadezhda81
borodin
eidevyatkina
hbqhzwtd
marinavg63607
omraleva
POMILEVAVladimirovna269
Что такое сноска коротко ​
slitex
Abespal
ustinov434
Dragun1684