Помогите, пожалуйста, исправить ошибку в коде
помогите пожалуйста исправить ошибку в коде для задачи:
Перечислить все пары простых чисел-близнецов, не превосходящих заданного числа n, троичные представления которых получаются друг из друга записью цифр в обратном по-рядке (первая такая пара - это 5 и 7).
вот сам код:
Код:
program zadacha_1;
uses crt;
type chisla=array[1..100]of integer;
mas_ch=array[1..100] of string;
var k,n:integer;
sim:chisla;
sim_tr,s_sim:mas_ch;
procedure resheto(n:integer; var sim:chisla); {поиск простых чисел с применением решета Эратосфена}
var i,j,p:integer;
begin
p:=1;
for i:=1 to n do
sim:=i;
for i:=1 to n do
begin
if sim<>0 then inc(p);
j:=i;
while j<=n do
if (sim[j] mod p = 0) and (sim[j]>p) then
begin
sim[j]:=0;
inc(j);
end
else inc(j);
end;
sim[1]:=0;
writeln('Sinmple numbers:');
for i:=1 to n do
if sim<>0 then write(sim,' ');
end;
procedure trancf(n:integer; sim:chisla; var sim_tr:mas_ch; var k:integer);
{перевод найденных простых чисел в троичную систему}
var i,x,num:integer;
st,r:string;
begin
k:=1;
for i:=1 to n do
begin
if sim<>0 then
begin
num:=sim;
r:='';
repeat
x:=num mod 3;
str(x,st);
r:=r+st;
num:=num div 3;
st:='';
until num=0;
sim_tr[k]:=r;
inc(k);
end;
end;
writeln('k=', k);
end;
procedure revers(sim_tr:mas_ch; k:integer);
{формирование массива чисел с обратным троичным представлением и поиск пар-близнецов по условию задачи}
var i,j,l,g:integer;
old, new:string;
begin
for i:=1 to k do
begin
old:=sim_tr;
new:=s_sim;
l:=length(old);
for j:=1 to l do
new[j]:=old[l-j];
end;
writeln;
writeln('Twins simple numbers: ');
for i:=1 to k do
for g:=1 to k do
if s_sim=sim_tr[g] then writeln(s_sim, '-' ,sim_tr[g]);
end;
BEGIN
clrscr;
write('n>13: ');
readln
;
resheto(n,sim);
trancf(n,sim,sim_tr,k);
revers(sim_tr,k);
readkey;
END.
помогите пожалуйста исправить ошибку в коде для задачи:
Перечислить все пары простых чисел-близнецов, не превосходящих заданного числа n, троичные представления которых получаются друг из друга записью цифр в обратном по-рядке (первая такая пара - это 5 и 7).
вот сам код:
Код:
program zadacha_1;
uses crt;
type chisla=array[1..100]of integer;
mas_ch=array[1..100] of string;
var k,n:integer;
sim:chisla;
sim_tr,s_sim:mas_ch;
procedure resheto(n:integer; var sim:chisla); {поиск простых чисел с применением решета Эратосфена}
var i,j,p:integer;
begin
p:=1;
for i:=1 to n do
sim:=i;
for i:=1 to n do
begin
if sim<>0 then inc(p);
j:=i;
while j<=n do
if (sim[j] mod p = 0) and (sim[j]>p) then
begin
sim[j]:=0;
inc(j);
end
else inc(j);
end;
sim[1]:=0;
writeln('Sinmple numbers:');
for i:=1 to n do
if sim<>0 then write(sim,' ');
end;
procedure trancf(n:integer; sim:chisla; var sim_tr:mas_ch; var k:integer);
{перевод найденных простых чисел в троичную систему}
var i,x,num:integer;
st,r:string;
begin
k:=1;
for i:=1 to n do
begin
if sim<>0 then
begin
num:=sim;
r:='';
repeat
x:=num mod 3;
str(x,st);
r:=r+st;
num:=num div 3;
st:='';
until num=0;
sim_tr[k]:=r;
inc(k);
end;
end;
writeln('k=', k);
end;
procedure revers(sim_tr:mas_ch; k:integer);
{формирование массива чисел с обратным троичным представлением и поиск пар-близнецов по условию задачи}
var i,j,l,g:integer;
old, new:string;
begin
for i:=1 to k do
begin
old:=sim_tr;
new:=s_sim;
l:=length(old);
for j:=1 to l do
new[j]:=old[l-j];
end;
writeln;
writeln('Twins simple numbers: ');
for i:=1 to k do
for g:=1 to k do
if s_sim=sim_tr[g] then writeln(s_sim, '-' ,sim_tr[g]);
end;
BEGIN
clrscr;
write('n>13: ');
readln
resheto(n,sim);
trancf(n,sim,sim_tr,k);
revers(sim_tr,k);
readkey;
END.