Cod sursa(job #330125)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 8 iulie 2009 20:06:54
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
#define N 200005
#define M 8
short int a[N][M],;
int n,x;
void matrice()
{
	for (int i=2; i<N-4; ++i)
	{
		if (!a[i][0])
		{
			a[i][++a[i][0]]=i;
			for (int j=i+i; j<N-4; j+=i)
				a[j][++a[j][0]]=i;
		}
	}
}
bool caut1(int n)
{
	int p=1,u=a[x][0],m;
	while (p!=u)
	{
		m=(p+u)/2;
		if (a[x][m]>=n)
			u=m;
		else
			p=m+1;
	}
	if (a[x][p]!=n)
		return 0;
	return 1;
}
bool verific(int x)
{
	for (int i=1; i<=a[x][0]; ++i)
		if (caut1(a[x][i]))
			return false;
		return true;
}
void caut()
{
	int s=1,cx=x*2;
	for (int i=2; i<=cx; ++i)
	{
		if (verific(i))
			s+=i; 
	}
	printf("%d\n",s);
}
void citire()
{
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	int t;
	scanf("%d",&t);
	while (t)
	{
		scanf("%d ",&x);
		caut();
		--t;
	}
}
int main()
{
	matrice();
	citire();
	return 0;
}