Обозначим за N%M операцию, возвращающую остаток от
целочисленного деления N на M.
Известно, что следующее логическое высказывание истинно:
НЕ (A<2 ИЛИ A>9 ИЛИ A%3<>0) ИЛИ НЕ (A<4 ИЛИ A>11 ИЛИ
A%4<>0)
Найдите все значения целых положительных чисел A, при которых
это возможно и посчитайте их сумму. В ответе укажите целое
число
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
function IsPrime(n:integer):boolean;
begin
if n<4 then Result:=True
else begin
var found:= (n mod 2 = 0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin
found:=(n mod p = 0);
p+=2
end;
Result:=not found
end
end;
begin
Writeln('k=',ArrRandom(ReadInteger('n='),1,999).Println.
Where(x->IsPrime(x)).Count)
end.
Тестовое решение:
n= 10
401 828 780 444 694 965 23 341 673 875
k=3
2. А вот так это пишется с процедурой
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
procedure IsPrime(n:integer; var res:boolean);
begin
if n<4 then res:=True
else begin
var found:= (n mod 2 = 0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin
found:=(n mod p = 0);
p+=2
end;
res:=not found
end
end;
begin
var a:=ArrRandom(ReadInteger('n='),1,999); a.Println;
var k:=0;
var prime:boolean;
foreach var e in a do begin
IsPrime(e,prime);
if Prime then Inc(k)
end;
Writeln('k=',k)
end.
Тестовое решение:
n= 12
199 43 71 365 417 904 170 212 694 103 161 689
k=4
const
m=5;
n=4;
a:array[1..m] of real=(2,-7.1,3.2,-5.4,6.9);
b:array[1..n] of real=(8.1,3.2,-6.4,-3.5);
k=3;
var
i,j:integer;
sk:real;
s:array[1..m,1..n] of real;
begin
Writeln('Массив S');
for i:=1 to m do begin
for j:=1 to n do begin
s[i,j]:=a[i]*b[j];
Write(s[i,j]:7:2)
end;
Writeln
end;
sk:=0;
for i:=1 to m do sk:=sk+s[i,k];
Writeln('Сумма элементов столбца ',k,' равна ',sk)
end.
Результат выполнения программы:
Массив S
16.20 6.40 -12.80 -7.00
-57.51 -22.72 45.44 24.85
25.92 10.24 -20.48 -11.20
-43.74 -17.28 34.56 18.90
55.89 22.08 -44.16 -24.15
Сумма элементов столбца 3 равна 2.56