Cod sursa(job #190013)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 19 mai 2008 17:54:49
Problema Sum Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1 kb
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.