Cod sursa(job #59146)

Utilizator c_e_manuEmanuel Cinca c_e_manu Data 8 mai 2007 11:27:10
Problema Divizori Primi Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>

long long ok[1000000];
long k,x,n,t,i,j,y;

int main()
{	FILE*f=fopen("divprim.in","r");
	FILE*g=fopen("divprim.out","w");
	for(i=2;i*i<=1000000;i++)
		if(!ok[i])
		{	j=2;
			while(i*j<=1000000)
			{	ok[i*j]=1;
				j++;
			}
		}
	fscanf(f,"%ld",&t);
	for(i=1;i<=t;i++)
	{	fscanf(f,"%ld",&n);
		fscanf(f,"%ld",&k);
		for(y=n;y>=2;y--)
		{	j=2;x=0;
			while(j<=y/2)
			{	if(!ok[j]&&y%j==0) x++;
				j++;
				if(x>k) break;
			}
			if(x==k) break;
		}
		if(k==x&&y>=2)
		{	fprintf(g,"%ld",y);
			fprintf(g,"\n");
		}
		else { fprintf(g,"0");fprintf(g,"\n");}
	}
	return 0;
}