Cod sursa(job #1075837)

Utilizator andreeadeacAndreea Ioana Deac andreeadeac Data 9 ianuarie 2014 17:12:11
Problema Divizori Primi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;
ifstream f("divprim.in");
ofstream g("divprim.out");
const int N=1000001;
int a[8][N],v[8];
int div(int x){
    int nr=0;
    if(x%2==0){
        nr++;
        while(x%2==0)
            x=x/2;
    }
    for(int i=3;i*i<=x;i+=2)
        if(x%i==0){
            nr++;
            while(x%i==0)
                x=x/i;
        }
    if(x!=1)
        nr++;
    return nr;
}
int main()
{
    int i,pas,x,n,k,j,t;
    f>>t;
    for(i=1;i<=N;i++){
        x=div(i);
        v[x]++;
        a[x][v[x]]=i;
    }
    for(j=1;j<=t;j++){
        f>>n>>k;
        pas=1<<10;
        i=0;
        while(pas!=0){
            if(i+pas<v[k] && a[k][i+pas]<=n)
                i+=pas;
            pas/=2;
        }
        g<<a[k][i]<<"\n";
    }
    return 0;
}