Pagini recente » Cod sursa (job #2073723) | Cod sursa (job #1046358) | Cod sursa (job #325796) | Cod sursa (job #1978299) | Cod sursa (job #42778)
Cod sursa(job #42778)
{
Problema fractii
Versiunea n.00
}
Program fractii;
Type vector = array[1..1000000] of Longint;
Var nr : int64;
c, c2 : vector;
n, i, j, aux, k : longint;
Function totient( m : longint ) : Longint;
Var i, rez : Longint;
Begin
rez := m;
i := 1;
While c2[i] <= m do
Begin
if m mod c2[i] = 0 then
Begin
rez := rez div c2[i];
rez := rez*(c2[i]-1);
End;
i := i+1;
End;
totient := rez;
End;
Begin
Assign( input, 'fractii.in' );
Reset( input );
Readln( n );
Close( input );
k := 0;
For i := 2 to n do
If c[i] = 0 then
Begin
k := k+1;
c2[k] := i;
aux := i;
j := aux;
While j <= n do
Begin
j := j+aux;
c[j] := 1;
End;
End;
k := k+1;
c2[k] := n+1;
nr := 1;
For i := 2 to n do
nr := nr + totient( i )*2;
Assign( output, 'fractii.out' );
Rewrite( output );
Writeln( nr );
Close( output );
End.