Cod sursa(job #181165)

Utilizator jupanu92Anonim jupanu92 Data 17 aprilie 2008 22:03:28
Problema Divizori Primi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#include<string>
#define nrmax 1000001
using namespace std;
long  max,v[nrmax],mat[nrmax][8];
long long i,j;
void ciur()
{
 for(i=2;i<=nrmax;i++)
    if(v[i]==0)
     {
      for(j=i+i;j<=nrmax;j=j+i)
	     if(v[j]<7)v[j]++;

      }



 }
void generez()
{
  for(i=2; i<=nrmax; i++)
  {
    memcpy(mat[i],mat[i-1], sizeof mat[i]);
    
    mat[i][v[i]] = i;
  }
}

int main()
{
 freopen("divprim.in","r",stdin);
 freopen("divprim.out","w",stdout);

 ciur();
 generez();
 long long g,k,n;

 scanf("%lld ",&n);

 for(i=1;i<=n;i++)
  {
   scanf("%lld %lld",&g,&k);
   printf("%ld\n",mat[g][k]);
   }
 return 0;
 }