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
var s, si, sf: string; powm, n10i: longint; i, j, m, ls, err, ni, nf: integer; a: double;
begin Write('Введите основание системы счисления (2..9): '); Readln(m); if not (m in [2..9]) then Writeln('Ну-ну...') else begin Write('Введите положительное число в этой системе счисления: '); Readln(s); ls := Length(Trim(s)); i := pos('.', s); if i > 0 then begin ni := i - 1; si := Copy(s, 1, ni); nf := ls - i; sf := Copy(s, i + 1, nf) end else begin si := s; ni := ls; sf := ''; nf := 0 end; powm := 1; n10i := 0; for i := ni downto 1 do begin Val(si[i], j, err); n10i := n10i + j * powm; powm := powm * m end; powm := m; a := 0; for i := 1 to nf do begin Val(sf[i], j, err); a := a + j / powm; powm := powm * m end; a := a + n10i; Writeln(s, '(', m, ')=', a, '(10)') end; end.
Тестовое решение:
Введите основание системы счисления (2..9): 8 Введите положительное число в этой системе счисления: 23532.5034 23532.5034(8)=10074.6318359375(10)
// Проверка, является ли число простым
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
k = 50;
var
s, si, sf: string;
powm, n10i: longint;
i, j, m, ls, err, ni, nf: integer;
a: double;
begin
Write('Введите основание системы счисления (2..9): ');
Readln(m);
if not (m in [2..9]) then Writeln('Ну-ну...')
else begin
Write('Введите положительное число в этой системе счисления: ');
Readln(s);
ls := Length(Trim(s));
i := pos('.', s);
if i > 0 then begin
ni := i - 1; si := Copy(s, 1, ni);
nf := ls - i; sf := Copy(s, i + 1, nf)
end
else begin si := s; ni := ls; sf := ''; nf := 0 end;
powm := 1; n10i := 0;
for i := ni downto 1 do
begin
Val(si[i], j, err);
n10i := n10i + j * powm;
powm := powm * m
end;
powm := m; a := 0;
for i := 1 to nf do
begin
Val(sf[i], j, err);
a := a + j / powm;
powm := powm * m
end;
a := a + n10i;
Writeln(s, '(', m, ')=', a, '(10)')
end;
end.
Тестовое решение:
Введите основание системы счисления (2..9): 8
Введите положительное число в этой системе счисления: 23532.5034
23532.5034(8)=10074.6318359375(10)