Cod sursa(job #655259)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 1 ianuarie 2012 21:46:14
Problema Divizori Primi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb

#include <fstream>
#include <cmath>
#define l 150000
#define l2  100000
using namespace std;
ifstream f("divprim.in");
ofstream g("divprim.out");
int i,j,prim[4005],n1,p,de,w1,w2;
int H[7][1000005];
int DESC(int x)
{
        int y=x,nr=0,e=0,d=2;
        while (y!=1&&d*d<=x) {
                e++,d=prim[e];
                if(y%d==0) nr++;
                while (y%d==0) y=y/d;
        }
        if (y!=1) nr++;
        return nr;
}
int main()
{
w1=sqrt(sqrt(l));
w2=sqrt(l);
        for(i=2; i<=w1; i++) if (prim[i]==0)
                        for(j=i*i; j<=w2; j+=i) prim[j]=1;

        for(i=2; i<=w2; i++)
                if (prim[i]==0) n1++,prim[n1]=i;


        for(i=2; i<=l2; i++) {
            p=DESC(i);
              /*  if (prim[i]==0) {
                        H[0][0]++;
                        H[0][H[0][0]]=i;
                } else {
                        p=DESC(i);
                        if (p<=7&&p>0) {
                                H[p-1][0]++;
                                H[p-1][H[p-1][0]]=i;
                        }
                }
                */
                if (i==1100)
                de=1;
        }



        f.close();
        g.close();
        return 0;
}