Cod sursa(job #416915)
Utilizator | Data | 13 martie 2010 17:58:10 | |
---|---|---|---|
Problema | Fractii | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.21 kb |
#include <algorithm>
#define input "fractii.in"
#define output "fractii.out"
#define DIM 500000
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;
}