Cod sursa(job #130846)

Utilizator cos_min_max_ionCosmin Ion cos_min_max_ion Data 2 februarie 2008 10:59:46
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<iostream.h>
#include<stdio.h>
#include<math.h>
int ciur[200003];
int main()
{ int i,i1, j,k, x,r, n,  s=0;
  //double r;
  freopen("sum.in", "rt", stdin);
  freopen("sum.out", "wt", stdout);
  cin>>n;
  for(i1=1;i1<=n;i1++)
  { cin>>x; s=1;
    r=sqrt(x);
    ciur[x]=ciur[2*x]=i1;
    if(x%2==0) {for(i=2;i<2*x;i+=2) ciur[i]=i1;
		for(i=x/2;i<2*x;i+=x/2) ciur[i]=i1;
		}
    if(x%3==0) {for(i=3;i<2*x;i+=3) ciur[i]=i1;
		for(i=x/3;i<2*x;i+=x/3) ciur[i]=i1;
	       }
    if(x%5==0) {for(i=5;i<2*x;i+=5) ciur[i]=i1;
		for(i=x/5;i<2*x;i+=x/5) ciur[i]=i1;
		}
    for (k=1;6*k+1<=r ;k++)
    {if(x%(6*k+1)==0) {for(i=j=6*k+1;i<2*x;i+=j) ciur[i]=i1;
		       for(i=j=x/(6*k+1);i<2*x;i+=j) ciur[i]=i1;
		       }
     if(x%(6*k+5)==0) {for(i=j=6*k+5;i<2*x;i+=j) ciur[i]=i1;
		       for(i=j=x/(6*k+5);i<2*x;i+=j) ciur[i]=i1;
		       }
    }
    for(j=2;j <2*x;j++)
     if(ciur[j]!=i1) s+=j;
    cout<<s<<'\n';
  }
  return 0;
}