Cod sursa(job #1752561)

Utilizator NinjaCubeMihai Radovici NinjaCube Data 4 septembrie 2016 14:38:22
Problema Fractii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#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 ;
}