Program test; uses utils; var n,i,sum,time:longint; flag:boolean; begin readln(n); if n<2 then flag:=false;{Единица - не простое число} if n=2 then flag:=true;{2 - простое} if (n>2) and (n mod 2 <> 0) then begin{ после двойки простые числа только нечетные} for i:=1 to n do begin{проверяем что бы было только 2 делителя} sum:=sum+1; end; if sum=2 then flag:=true; end else flag:=false; if flag then writeln('Число простое') else writeln('Число НЕ простое'); time:=milliseconds; writeln('Времени затрачено ',time:10,' ms.'); end. Все проверки сделаны для сокращения времени работы программы.
var arr : arr2; n : integer; i, sot, spl, snu : byte; ch : char;
begin write('Хотите использовать заданный по умолчанию массив? (y/n): '); ch := readkey; writeln(ch); sot := 0; spl := 0; snu := 0; if ((ch='y') or (ch='Y')) then begin { Используем заданный по умолчанию } for i:=1 to 12 do begin if arr1[i] > 0 then inc(spl); if arr1[i] < 0 then inc(sot); if arr1[i] = 0 then inc(snu); write(arr1[i], ' '); end; writeln; end else begin { Создаём и заполняем новый массив } write('Введите желаемый размер массива: '); readln(n); setLength(arr, n); writeln('Введите элементы массива:'); for i:=0 to high(arr) do readln(arr[i]); for i:=0 to high(arr) do begin if arr[i]>0 then inc(spl); if arr[i]<0 then inc(sot); if arr[i]=0 then inc(snu); write(arr[i], ' '); end; writeln; end;
Объяснение:
В.