Pagini recente » Cod sursa (job #422174) | Cod sursa (job #1864729) | Cod sursa (job #2069317) | Cod sursa (job #1480555) | Cod sursa (job #676323)
Cod sursa(job #676323)
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
#define maxN 200005
int N , X;
bool ci[maxN];
int cmmdc (int a , int b)
{
int r;
while (b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
void ciur ()
{
for (int t = 2 ; t <= maxN ; ++t)
if (!ci[t])
for (int i = t + t ; i <= maxN ; i += t)
ci[i] = true;
}
long long solve (int X)
{
long long sol = 0;
for (int i = 1 ; i <= 2 * X ; ++i)
if (i + X <= maxN && !ci[i + X])
sol += i;
else if (cmmdc (i , X) == 1)
sol += i;
return sol;
}
int main ()
{
freopen ("sum.in" , "r" , stdin);
freopen ("sum.out" , "w" , stdout);
scanf ("%d" , &N);
long long sol;
ciur ();
for (int i = 1 ; i <= N ; ++i)
{
scanf ("%d" , &X);
sol = solve (X);
printf ("%lld\n" , sol);
}
return 0;
}