Function IsPrime(n: integer): boolean; // Проверка, является ли число простым var p: integer; found: boolean; begin found := (n mod 2 = 0); p := 3; while (not found) and (sqr(p) <= n) do begin found := (n mod p = 0); p := p + 2 end; IsPrime := (not found) or (p = 2) end;
const n = 20;
var i, k: integer; a: array[1..n] of integer;
begin Write('Введите 20 целых чисел через пробел: '); for i := 1 to n do begin Read(a[i]); end; k := 0; for i := 1 to n do if IsPrime(a[i]) then k := k + 1; Writeln('Количество простых чисел- ', k) end.
Тестовое решение:
Введите 20 целых чисел через пробел: 5 36 83 1673 339 73 34 14623 7 173 62 45 3463 326 28 934 345 24 4526 1143 Количество простых чисел- 6
function SqrDist(p, q: integer): real; { Возвращает квадрат расстояния между точками } begin SqrDist := sqr(x[q] - x[p]) + sqr(y[q] - y[p]) end;
begin Write('Введите количество точек -> '); Readln(n); Writeln('Вводите координаты каждой точки (x,y) через пробел'); for i := 1 to n do begin Write('точка ', i, ': '); Readln(x[i], y[i]); end; dmin := 1e10; { значение, заведомо большее реально возможного } for i := 1 to n do for j := i + 1 to n do begin d := SqrDist(i, j); if dmin > d then dmin := d end; Writeln('Минимальное расстояние между точками равно ', sqrt(dmin):0:4) end.
Тестовое решение:
Введите количество точек -> 5 Вводите координаты каждой точки (x,y) через пробел точка 1: 3.4 7.2 точка 2: -3 8.6 точка 3: -4.5 -5.1 точка 4: 6 -2 точка 5: 0 9 Минимальное расстояние между точками равно 3.0265