Cod sursa(job #121294)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 8 ianuarie 2008 11:31:35
Problema Divizori Primi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
char a[10001];
int m[10000][10000];
void ciur()
{ long long i,j;
	for (i=2;i<=10000;i++)
		if (a[i]==0)
			{
			j=2;
			while(i*j<=10000)
				{
				a[i*j]++;
				j++;
				}
			}
j=1;
for (i=2;i<=10000;i++)
	{
	m[a[i]][j]=i;
	j++;
	}
}

int main()
{ long long n,i,x,j,y,m,ok=1,st,dr;
FILE*f=fopen("divprim.in","r");
FILE*g=fopen("divprim.out","w");
ciur();
fscanf(f,"%lld",&n);
for (i=1;i<=n;i++)
	{
	fscanf(f,"%lld",&x);
	fscanf(f,"%lld",&y);
	st=m[y][1];
	dr=m[y][j];
	while (st<=dr)
		{
		m=(st+dr)/2;
		if (m==x){ fprintf(g,"%lld",m); ok=0 ;break;}
		else if(m>x) dr=m-1;
		else if(m<x) st=m+1;
		}
	if (ok==1) fprintf(g,"0");
	}
return 0;
}