Cod sursa(job #1337218)

Utilizator isa_fares_mudiFares Mohamad isa_fares_mudi Data 8 februarie 2015 19:05:18
Problema Divizori Primi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>

using namespace std;
int cdp[1000001], a[8][1000001] ;
int main()
{
    freopen ( "divprim.in","r",stdin ) ;
    freopen ( "divprim.out","w",stdout ) ;
    int t, n, k, lim, j, i ;
    scanf ( "%d",&n ) ;
    cdp[0] = cdp[1] = 0 ;
    for ( i = 2 ; i <= 1000000 ; i += 2 )
        cdp[i]++;
    for ( i = 3 ; i <= 1000000 ; i += 2 )
    {
        if ( !cdp[i] )
        {
            for ( j = i ; j <= n ; j += i )
                cdp[i]++;
        }
    }
    i = 0 ;
    for ( j = 1 ; j <= 1000000 ; j ++ )
        a[i][j] = 1 ;
    for ( i = 1 ; i <= 7 ; i ++ )
        for ( j = 1 ; j <= 1000000 ; j ++ )
            if ( cdp[j] == i )
                a[i][j] = j ;
            else
                a[i][j] = a[i][j-1] ;
    for ( i = 1 ; i <= t ; i ++ )
    {
        scanf ( "%d%d",&n,&k ) ;
        printf ( "%d\n",a[k][n] ) ;
    }
    return 0;
}