Cod sursa(job #1414953)

Utilizator ftslDragomir Ioan ftsl Data 3 aprilie 2015 13:04:05
Problema Divizori Primi Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>
using namespace std;
#define MAX_N 1000000
int a[8][MAX_N+1];
char ciur[MAX_N+1];
void ciuruire() {
	int i, j;
	for(i=2;i*i<=MAX_N;){
		for(j=1;j*i<=MAX_N;j++)
			ciur[i*j]++;
		while(ciur[i]!=0)
			i++;
	}
	for(i=2;i<=MAX_N;i++){
		if(i==123122){
			i=i+1;i--;
		}
		a[1][i]=a[1][i-1];
		a[2][i]=a[2][i-1];
		a[3][i]=a[3][i-1];
		a[4][i]=a[4][i-1];
		a[5][i]=a[5][i-1];
		a[6][i]=a[6][i-1];
		a[7][i]=a[7][i-1];
		a[ciur[i]][i]=i;
	}
}
int main(){
	freopen("divprim.in","r",stdin);
	freopen("divprim.out","w",stdout);
	int  t;
	scanf("%d",&t);
 	ciuruire();
	while(t-->0){
		int n, k;
		scanf("%d%d",&n,&k);
		if(k==0)
			printf("1\n");
		else
			printf("%d\n",a[k][n]);
	}
	return 0;
}