Cod sursa(job #329382)

Utilizator udrescu_cristiUdrescu Cristian udrescu_cristi Data 6 iulie 2009 01:16:40
Problema Sum Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<iostream.h>
#include<stdio.h>
 int main()
{
 freopen("sum.in","r",stdin);
 freopen("sum.out","w",stdout);
  long long n,x,i,j,s=0,k,i1,d=0,v[100000],t=1;
  char a[200001];
   v[0]=0;
 scanf("%lld\n",&n);
  for(i=1;i<=50000;i++)
    a[i]='1';
 a[1]='0';
  for(i=1;i<=50000;i++)
 {
   if(a[i]=='1')
{
 d++;
v[d]=i;
  for(j=i+i;j<=50000;j+=i)
   a[j]='0';
}
 }
   for(i=1;i<=n;i++)
{
 scanf("%lld\n",&x);
for(i1=1;i1<=2*x;i1++)
 a[i1]='0';
  t=1;
  s=0;
for(i1=1;i1<=d&&t;i1++)
{
  if(v[i1+1]>x)t=0;
 if(x%v[i1]==0)
{
 for(k=v[i1];k<=2*x;k+=v[i1])
{
if(a[k]!='1')
{s+=k;
a[k]='1';}
}
}
 }
s=2*x*(2*x+1)/2-s;
 printf("%lld\n",s);
}
 return 0;
}