Cod sursa(job #326097)

Utilizator qSortMorariu Razvan qSort Data 23 iunie 2009 19:30:08
Problema Fractii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.64 kb
program fractii;
var phi:array[1..10000000] of int64;
		i,j,k,sol,n:integer;
		f,g:text;
begin
assign(f,'fractii.in');
reset(f);
assign(g,'fractii.out');
rewrite(g);
read(f,n);
fillchar(phi,sizeof(phi),0);
phi[1]:=1;
sol:=1;
for i:=2 to n do
	begin
	if phi[i]=0 then
			begin
			phi[i]:=i-1;
			j:=i*i;
			while  j<=n do
				begin
				phi[j]:=i;
				j:=j+i;
				end;
			end
	else
		begin
		j:=phi[i];
		phi[i]:=j-1;
		k:=i div j;
			while (k mod j=0) do
				begin
				phi[i]:=phi[i]*j;
				k:=k div j;
				end;
			phi[i]:=phi[i]*phi[k];
		end;
	sol:=sol+2*phi[i];
	end;
write(g,sol);



close(f); close(g);
end.