Cod sursa(job #587345)

Utilizator maritimCristian Lambru maritim Data 4 mai 2011 18:20:15
Problema Divizori Primi Scor 50
Compilator cpp Status done
Runda speedt1 Marime 0.62 kb
#include<stdio.h>

#define INF 20000000

int A[1000001];
int N;
int T;
int K;
int j;
int MAX = -INF;

void erathosteness(int N)
{
	for(int i=2;i<=N;i++)
		if(!A[i])
			for(int j=i+i;j<=N;j+=i)
				A[j] ++;
}

int main()
{
	FILE *f = fopen("divprim.in","r");
	FILE *g = fopen("divprim.out","w");
	
	fscanf(f,"%d",&T);
	for(int i=1;i<=T;i++)
	{
		fscanf(f,"%d %d",&N,&K);
		if(MAX<N)
			MAX = N;
	}
	erathosteness(MAX);
	rewind(f);
	fscanf(f,"%d",&T);
	for(int i=1;i<=T;i++)
	{
		fscanf(f,"%d %d",&N,&K);
		for(j = N;A[j] != K && j;j--);
		fprintf(g,"%d\n",j);
	}
	
	fclose(g);
	fclose(f);
}