Cod sursa(job #562644)

Utilizator biroBiro Alexandru biro Data 23 martie 2011 17:03:01
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <algorithm>
#define input "fractii.in"
#define output "fractii.out"
#define DIM 1000001

using namespace std;

int ciur[DIM] ;
int n ;
long long s ;
void read()
    {
       scanf ("%d" , &n) ;
   }
void solve()
   {
       for (int i=2 ; i<=n ; i++)
            {
                if (!ciur[i])
                    {
                        s+=i-1 ;
                        for (int j=i+i ; j<=n ; j+=i)
                           {
                                if (!ciur[j])
                                    {
                                        ciur[j]=j-j/i ;
                                    }
                                else
                                    {
                                        ciur[j]-=ciur[j]/i ;
                                    }
                            }
                    }
                else
                    {
                        s+=ciur[i] ;
                    }
            }
        printf ("%lld" , s*2+1 ) ;
    }
int main()
{
    freopen (input,"r",stdin) ;
    freopen (output,"w",stdout) ;

    read() ;
    solve() ;

    return 0;
}