Задача 1 Урок 19
Primary tabs
Задача 1 Урок 19 Получите случайный набор из 5 чисел, величиной от 1 до 50.Рассчитайте для каждого числа два его наибольших делителя, число и два делителя храните как запись, а для всего набора используйте массив записей.Используйте в коде do with
Выведите на экран результаты расчетов для каждого из исходных значений
type arr = array [1..5] of integer;
type del = record
one1 : string [5];
two1 : string [5];
end;
var chislo : del;
var a : arr;
one, two,i : integer;
s:string;
procedure randomix ( var b:arr );
var i,min,max : integer;
begin
randomize();
min := 1;
max := 50;
for i:=low(b) to high(b) do
b[i] := min + random(max - min + 1);
end;
procedure splittwo ( var b:integer; var one : integer; var two : integer );
var max,i : integer;
begin
max:=b;
for i:=1 to max do
if ((max mod i) = 0) then
begin
two:=one;
one:=i;
end;
end;
begin
randomix (a); // генерация чисел от 1 до 50
for i:=low(a) to high(a) do
begin
splittwo (a[i],one,two); // в процедуру для поиска двух делителей
with chislo do begin
str(one,s);
one1:=s;
str(two,s);
two1:=s;
writeln(a[i],' ','has a common divisor',one1,' ',two1);
end;
end;
readln();
end.
Вывод консоли:
2 has a common divisor2 1 49 has a common divisor49 7 2 has a common divisor2 1 4 has a common divisor4 2 33 has a common divisor33 11
- Log in to post comments
- 619 reads