Cod sursa(job #30281)

Utilizator floppy666Botond Fulop floppy666 Data 13 martie 2007 18:27:37
Problema Fractii Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.68 kb
program fractii;

var x:longint;
		p,i:longint;
    f:text;

function prim(a:longint):boolean;
var i:word;
begin
	prim:=true;
	for i:=2 to round(sqrt(a)) do
	if a mod i=0 then
	begin
    prim:=false;
    break;
	end;
end;

function tot(a:longint):longint;
var i:word;
		x:double;
begin
	x:=a;
  if prim(a) then x:=x-1 else
  begin
  	for i:=1 to round(a/2) do
  	if (a mod i=0)and(i<>1)and prim(i) then
  	x:=x*(1-1/i);
  end;
  tot:=round(x);
end;

begin
  assign(f,'fractii.in');
  reset(f);
  read(f,p);
  close(f);
  assign(f,'fractii.out');
  rewrite(f);
  for i:=2 to p do
  x:=x+2*tot(i);
{	write(f,tot(6),',');}
  write(f,x+1);
  close(f);
end.