Pagini recente » Monitorul de evaluare | Cod sursa (job #1230566) | Monitorul de evaluare | Diferente pentru utilizator/mihnea.anghel intre reviziile 16 si 15 | Cod sursa (job #190013)
Cod sursa(job #190013)
var phi:array[1..100000] of int64;
f,g:text;
i,n,j:longint;
x:int64;
begin
assign(f,'sum.in'); reset(f);
assign(g,'sum2.pas'); rewrite(g);
n:=100000;
for i:=2 to n do
phi[i]:=i;
j:=2;
while (j<=n) do begin
phi[j]:=phi[j] shr 1;
j:=j+2;
end;
for i:=3 to n do
if phi[i]=i then begin
j:=i;
while (j<=n) do begin
phi[j]:=phi[j]-(phi[j] div i);
j:=j+i;
end;
end;
phi[1]:=0;
writeln(g,'const a:array[1..100000] of longint=(');
for i:=1 to 99999 do
if i mod 100=0 then
writeln(g,phi[i]*i*2,',')
else
write(g,phi[i]*i*2,',');
writeln(g,phi[i]*i*2,');');
writeln(g,'var f,g:text;');
writeln(g,' i,x:longint;');
writeln(g,'begin');
writeln(g,' assign(f,''sum.in''); reset(f);');
writeln(g,' assign(g,''sum.out''); rewrite(g);');
writeln(g,' read(f,n);');
writeln(g,' for i:=1 to n do begin');
writeln(g,' read(f,x); writeln(g,a[x]); end;');
writeln(g,' close(f); close(g);');
writeln(g,'end.');
close(f); close(g);
end.