Задача 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
- 434 reads