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.
shakmeev
26.12.2020
// 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. Затем просматриваем список и все уникальные элементы, за исключением нуля, заносим в массив а. Далее вычисляем НОД для всех элементов полученного массива. Понятно, что первым в последовательности искомых чисел будет стоять НОД, а далее пойдут числа, которые будут увеличиваться каждый раз на НОД, пока не достигнут n.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Вычислите при языка питон факториал числа 50 — произведение всех натуральных чисел от 1 до 50 (1∗2∗3∗…∗501∗2∗3∗…∗50
print factorial(50)