Внимание! Если ссылка не работает, файл не найден или просто возникают какие-либо вопросы, напишите об этом, пожалуйста, мне на почту: xdypx@yandex.ru. В письме достаточно указать ссылку на эту страницу и описание проблемы или свой вопрос.
Описание: Задание: В числовом квадратном массиве постройте “спираль Улама” следующим
образом: начиная с центрального элемента по спирали против часовой
стрелки, массив заполняется натуральными числами от 1 до N^2.
Определить количество простых чисел в массиве.
Исходный код: Program name; uses crt; var a:array[1..50,1..50] of integer; i,j,m,n:integer; u,v,k,kol,t,x,y,add,dir,f,h:integer; b:array[1..2500] of integer; p:array[1..2500] of integer; g,r,q:integer;
{fun-ya poiska prostogo 4isla} function Prostoe(d:longint):boolean; var e:integer; begin Prostoe:=true; for e:=2 to d div 2 do if D mod 2=0 then begin Prostoe:=false; Break; end; end;
g:=1; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=g; g:=g+1; writeln; end; end;
for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3,' '); writeln; end;
k:=1; kol:=1; for i:=1 to n do begin {writeln;} for j:=1 to n do begin b[k]:=a[i,j]; k:=k+1; kol:=kol+1; end; end;
writeln; for i:=1 to kol-1 do begin for j:=1 to kol-2 do begin if b[j]<b[j+1] then begin t:=b[j]; b[j]:=b[j+1]; b[j+1]:=t; end; end; end; {for j:=1 to m do write (b[j],' '); writeln;}
x:=0; y:=1; add:=n; dir:=1; f:=1; while add<>0 do begin i:=0; while i<>add do begin x:=x+dir; a[y,x]:=b[f]; f:=f+1; i:=i+1; end; i:=0; add:=add-1; while i<>add do begin y:=y+dir; a[y,x]:=b[f]; f:=f+1; i:=i+1; end; dir:=dir*(-1); end;
writeln; {vivod vsego massiva} for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3,' '); {vivod vsego massiva} writeln; end; {poisk prostogo 4isla} q:=1; for i:=1 to n do begin for J:=1 to n do begin if Prostoe(a[i,j]) then q:=q+1; end; end; writeln; writeln('kol-wo prostih 4isel= ',q); {vivod kol-va prosogo 4isla}
readln; end.
Комментарии:
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]