Pagini recente » Cod sursa (job #826773) | Cod sursa (job #910510) | Borderou de evaluare (job #2017811) | Cod sursa (job #674859) | Cod sursa (job #802426)
Cod sursa(job #802426)
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
using namespace std;
#define MAX 100001
short int viz[MAX];
int v[MAX];
void ciur()
{
int i, j;
for(i=1; i<=MAX; i++)
v[i] = i-1;
for(i=2; i<=MAX; i++)
if(viz[i]==0)
if(i*2 <= MAX)
for(j=i*2; j<=MAX; j+=i)
{
viz[j] = 1;
v[j] -= v[i];
}
else
break;
}
int main()
{
ifstream f("sum.in");
ofstream g("sum.out");
int t, n, x;
long long sum;
ciur();
//Read
f>>n;
for(t=1; t<=n; t++)
{
f>>x;
//Compute
sum = v[x]*x*2;
//Print
g<<sum<<endl;
}
}