Mai intai trebuie sa te autentifici.
Cod sursa(job #294879)
Utilizator | Data | 2 aprilie 2009 20:19:52 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include<cstdio>
using namespace std;
#define INPUT "fractii.in"
#define OUTPUT "fractii.out"
#define LL long long
const LL NMAX = 1000001;
FILE *fin = fopen(INPUT, "r"), *fout = fopen(OUTPUT, "w");
LL N, Sum;
LL S[ NMAX ];
int main()
{
fscanf(fin, "%lld", &N);
Sum = 0;
for(LL i = 1; i <= N; S[ i ] = i, ++i);
for(LL i = 2; i <= N; ++i)
if( S[ i ] == i )
for(LL j = i; j <= N; S[ j ] = S[ j ] / i * (i-1), j += i);
for(LL i = 1; i <= N; Sum += S[ i ], ++i);
fprintf(fout, "%lld\n", 2*Sum-1);
fclose(fin);
fclose(fout);
return 0;
}