Pagini recente » Cod sursa (job #116894) | barosaneala420 | Cod sursa (job #480082) | Cod sursa (job #2497429) | Cod sursa (job #1752561)
#include <iostream>
#include <fstream>
using namespace std ;
ifstream f ("fractii.in") ;
ofstream g ("fractii.out") ;
long long phi[1000005] ;
int N ;
int main ()
{
f >> N ;
//construim sirul phi
for ( int i = 1 ; i <= N ; ++i )
phi[i] = i - 1 ; //initial ii atribuim toate nr mai mici ca i , "prime" cu el
for ( int i = 2 ; i <= N ; ++i ) //pentru fiecare nr
for ( int j = 2 * i ; j <= N ; j += i ) //parcurgem toti multiplii lui si scadem tot ce tinea de divizorul 'i'
phi[j] -= phi[i] ;
long long sol = 1 ; //fractia 1/1
for ( int i = 2 ; i <= N ; ++i )
sol += 2 * phi[i] ;
g << sol ;
}