Cod sursa(job #237495)

Utilizator SeldonHari Seldon Seldon Data 29 decembrie 2008 21:47:34
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
/*Raspundeti la N intrebari de tipul: care este suma numerelor Y prime cu un numar X, 
si care respecta proprietatea 0 < Y < 2*X.
Date de intrare

Prima linie a fisierului de intrare sum.in contine un numar intreg N. 
Pe urmatoarele N linii se afla cate un numar X.
Date de iesire
*/


#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iostream>
#include <cstdlib>
#include<fstream>
#define dim 9000
using namespace std;

  

void fi(int n, int *v)
     {
             /* functia lui euler cu ciurul lui Eratostene
             http://infoarena.ro/forum/index.php?topic=2512.0
             v[i] = nr intregilor pozitivi <i si primi cu i
             */
       int i,j;v[1]=1;
       for( i=2;i <= n;i++) v[i]=i-1;
       for( i=2;i <= n;i++)
       	for(j=i+i;j<=n;j=j+i)
        	v[j]=v[j]-v[i];
     }


int main(int argc, char *argv[])
{
int n,x, *v,i; 
freopen("sum.in","r",stdin);  
freopen("sum.out","w",stdout);
scanf("%d",&n);
//int *u;
//u= new int[n];

/*
for(i=1;i<=n;i++)
{ 
  f>>x;
  u[i]=x;
  if(x>max) max=x;
}
*/
v = new int [dim];

fi(dim,v);
for(i=1;i<=n;i++)
{ scanf("%d",&x);;
 printf("%lld \n",2*x*v[x]);
}
delete v;
//delete u;

return EXIT_SUCCESS;
}