Cod sursa(job #185057)

Utilizator razyelxrazyelx razyelx Data 24 aprilie 2008 18:37:48
Problema Sum Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
int main(){
	long n,x,k,i,j,l,d,a[100001]={0},b[100001]={0},s,aux;

	FILE*in  = fopen("sum.in","r");
	FILE*out = fopen("sum.out","w");

	fscanf (in,"%ld", &n);

	for (i=1;i<=n;i++){
	    fscanf (in, "%ld", &x);

	    aux = x;

	    for (j=1;j<=2*x;j++)
		b[j] = a[j] = 0;

	    d = 2;k = 0;s = 0;
	    while (aux > 1){
		  if (aux % d == 0){
			a[++k] = d;
			while (aux % d == 0) aux /= d;
		  }
		  d++;
	    }

	    for (j=1;j<=k;j++)
		for (l=1;a[j]*l<=2*x;l++)
		    b[a[j]*l] = 1;

	    for (l=1;l<=2*x;l++)
		if (!b[l]) s += l;

	    fprintf (out, "%ld\n", s);
	}
	return 0;
}