Cod sursa(job #1172465)

Utilizator andreey_047Andrei Maxim andreey_047 Data 17 aprilie 2014 15:56:57
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
#define Nmax 1000055
using namespace std;
int Q[Nmax],dp[Nmax][8];
inline void ciur(){
 int i,j;
 for(i=2;i<=Nmax;i++)
  if(!Q[i])
    for(j=i;j<=Nmax;j+=i)
     Q[j]++;
}
inline void solve(){
int i,j;
 for(i=1;i<Nmax;i++)
  for(j=1;j<=7;j++){
    if(Q[i] == j)
     dp[i][j] = i;
     else dp[i][j]=dp[i-1][j];
  }
}
int main(){
    int i,n,k,j,t;
    freopen("divprim.in","r",stdin);
    freopen("divprim.out","w",stdout);
    scanf("%d",&t);
    ciur();
    solve();
    for(i=1;i<=t;i++){
      scanf("%d%d",&n,&k);
      printf("%d\n",dp[n][k]);
    }
    return 0;
}