1) const n=10; var a:array[1..n] of integer; i,min,s:integer; begin for i:=1 to n do begin a[i]:=random(81)+10; write(a[i]:4); end; writeln; min:=a[1]; for i:=1 to n do begin if a[i]<min then min:=a[i]; s:=s+a[i]; end; writeln('min = ',min); writeln('s = ',s); end.
Пример: 54 58 67 78 58 79 54 78 44 60 min = 44 s = 630
2) const n=9; m=6; var a:array[1..n,1..m] of integer; i,j:integer; begin for i:=1 to n do for j:=1 to m do a[i,j]:=i; for i:=1 to n do begin for j:=1 to m do write(a[i,j]); writeln; end; end.
// 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.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку