Pagini recente » Cod sursa (job #345021) | Cod sursa (job #875219) | Cod sursa (job #1368384) | Cod sursa (job #240347) | Cod sursa (job #1822373)
#include <bits/stdc++.h>
#define nmax 100001
using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
long long phi[nmax];
const int INFINT = (1LL << 31) - 1;
const long long INFLL = (1LL << 62);
const int CHARMAX = (1 << 10);
class InParsare
{
private:
FILE *fin;
char *buffer;
size_t index_of_buffer;
char read_character()
{
index_of_buffer++;
if(index_of_buffer == CHARMAX)
{
fread(buffer, 1, CHARMAX, fin);
index_of_buffer = 0;
}
return buffer[index_of_buffer];
}
public:
InParsare(const char *name)
{
fin = fopen(name, "r");
buffer = new char[CHARMAX]();
index_of_buffer = CHARMAX - 1;
}
template<class T>
InParsare &operator >> (T &n)
{
char c;
while(!isdigit(c = read_character()) && c != '-');
int sgn = 1;
if(c == '-')
{
n = 0;
sgn = -1;
}
else n = c - '0';
while(isdigit(c = read_character()))
n = n * 10 + c - '0';
n *= sgn;
return *this;
}
};
class OutParsare
{
private:
FILE *fout;
char *buffer;
size_t index_of_buffer;
void write_character(char character)
{
if(index_of_buffer == CHARMAX)
{
fwrite(buffer, 1, CHARMAX, fout);
index_of_buffer = 0;
buffer[index_of_buffer++] = character;
}
else buffer[index_of_buffer++] = character;
}
public:
OutParsare(const char *name)
{
fout = fopen(name, "w");
buffer = new char[CHARMAX]();
index_of_buffer = 0;
}
~OutParsare()
{
fwrite(buffer, 1, index_of_buffer, fout);
fclose(fout);
}
template<class T>
OutParsare &operator << (T n)
{
if(typeid(T).name() == typeid(char).name())
{
write_character(n);
return *this;
}
if(n <= 9)
write_character(n + '0');
else
{
(*this) << (n / 10);
write_character(n % 10 + '0');
}
return *this;
}
};
int main()
{
int x,n,t;
for(int i=1;i<=nmax;i++)
phi[i]=i-1;
for(int i=2;i<=nmax;i++)
{
for(int j=2*i;j<=nmax;j+=i)
{
phi[j]=phi[j]-phi[i];
}
}
fin>>t;
for(int i=1;i<=t;i++)
{
fin>>n;
fout<<(unsigned long long)2*n*phi[n];
}
return 0;
}