Pagini recente » Cod sursa (job #2562750) | Cod sursa (job #2822380) | Cod sursa (job #2830152) | Cod sursa (job #1464150) | Cod sursa (job #982537)
Cod sursa(job #982537)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
#define Nmax 100001
uint64_t ciur[Nmax], n, nr;
uint64_t i, l;
void gen()
{
for ( int i = 2; i <= Nmax; ++i )
ciur[i] = i - 1;
for ( int i = 2; i <= Nmax; ++i )
{
for ( int j = i << 1; j <= Nmax; j += i )
ciur[j] -= ciur[i];
ciur[i] *= ( i << 1 );
}
}
int main()
{
ifstream f("sum.in");
ofstream g("sum.out");
gen();
f >> n;
string FileData( ( istreambuf_iterator<char>(f) ), istreambuf_iterator<char>() );
l = FileData.length();
for ( int i = 1; i < l; ++i )
if ( isdigit( FileData[i] ) )
nr = nr * 10 + ( FileData[i] - 48 );
else
{
g << ciur[nr] << "\n";
nr = 0;
}
f.close();
g.close();
return 0;
}