Pagini recente » Cod sursa (job #2541774) | Cod sursa (job #1568041) | Cod sursa (job #2822909) | Cod sursa (job #1053130) | Cod sursa (job #238027)
Cod sursa(job #238027)
#include <stdio.h>
#include <string.h>
char a[200005],b[200005],e[200005];
int t[100005];
int n,m,s,max;
void desc (int n)
{
int f,p,i;
f=2;
for (i=1; i<=max; ++i)
e[i]=0;
while (n!=1)
{
p=0;
while (n%f==0)
{
n/=f;
p++;
}
if (p!=0)
e[f]=1;
f++;
}
}
int main ()
{
freopen ("sum.in","r",stdin);
freopen ("sum.out","w",stdout);
int i,j,k;
scanf ("%d",&m);
for (i=1; i<=m; ++i)
{
scanf ("%d",&t[i]);
if (2*t[i]>max)
max=2*t[i];
}
/*for (i=1; i<max; ++i)
a[i]=1;*/
for (i=1; i<=m; ++i)
{
for (k=1; k<2*t[i]; ++k)
b[k]=a[k];
desc (t[i]);
s=0;
for (k=1; k<2*t[i]; ++k)
{
if (e[k])
{
for (j=k; j<2*t[i]; j+=k)
if (!b[j])
b[j]=1;
}
if (!b[k])
s+=k;
}
printf ("%d\n",s);
}
return 0;
}