Cod sursa(job #652915)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 26 decembrie 2011 19:10:32
Problema Divizori Primi Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<cstdio>
using namespace std;

int divPrimi[1000001];

void NumaraDivPrimi(){
	//calculeaza nr de div primi al tuturor nr pana la 1.000.000
	
	int i, j;
	for (i = 2; i <= 500000; i++)
		if (divPrimi[i] == 0)
			for (j = 2 * i; j <= 1000000; j += i) divPrimi[j]++;
}

int main(){
	freopen("divprim.in", "r", stdin), freopen("divprim.out", "w", stdout);
	int T, x, nrDiv, i, j;
	scanf ("%d", &T);
	
	NumaraDivPrimi();
	for (i = 0; i < T; i++){
		scanf ("%d %d", &x, &nrDiv);
		for (j = x; j >= 2; j--)
			if (divPrimi[j] == nrDiv) printf("%d\n", j), j = 0;
		if (j == 1) printf("0\n");
	}
	return 0;
}