Var i,j,b,c:integer; begin c:=0; for i:=256 to 16384 do begin b:=1; for j:=2 to i div 2 do if i mod j=0 then begin b:=0; break; end; if b=1 then c+=i; end; writeln(c); end.
Dim k as integer ' Объявляем глобальную переменную Sub Prog_Summa() Dim S as long, i as long S = 0 ' В переменной S накапливается сумма простых чисел for i=256 to 16384 ' цикл по всем числам, которые надо проверить k=1 ' признак простого числа Prost(i) ' В функции проверяем, что число i простое if k = 1 then S = S + i ' если i - простое, прибавляем его к S next i print S ' Выводим сумму S end sub
Function Prost(x) Dim i as long, Q as long Prost = 0 ' Значение функции пока равно 0 Q = int(sqrt(x)) ' Q=[√(x)] - предел проверки числа x на простоту for i = 2 to Q if int(x/i) = x/i then k=0 ' если х делится на i, то оно составное next i if k = 1 then Prost = x ' если x простое, то функция равна x ' Если x - составное, то функция остается равной 0 End Function
Answers & Comments
Verified answer
//PascalABC.NET 3.2 сборка 1318Var
i,j,b,c:integer;
begin
c:=0;
for i:=256 to 16384 do
begin
b:=1;
for j:=2 to i div 2 do
if i mod j=0 then
begin
b:=0;
break;
end;
if b=1 then c+=i;
end;
writeln(c);
end.
Вывод:
14578560
Verified answer
Dim k as integer ' Объявляем глобальную переменную
Sub Prog_Summa()
Dim S as long, i as long
S = 0 ' В переменной S накапливается сумма простых чисел
for i=256 to 16384 ' цикл по всем числам, которые надо проверить
k=1 ' признак простого числа
Prost(i) ' В функции проверяем, что число i простое
if k = 1 then S = S + i ' если i - простое, прибавляем его к S
next i
print S ' Выводим сумму S
end sub
Function Prost(x)
Dim i as long, Q as long
Prost = 0 ' Значение функции пока равно 0
Q = int(sqrt(x)) ' Q=[√(x)] - предел проверки числа x на простоту
for i = 2 to Q
if int(x/i) = x/i then k=0 ' если х делится на i, то оно составное
next i
if k = 1 then Prost = x ' если x простое, то функция равна x
' Если x - составное, то функция остается равной 0
End Function