Cod sursa(job #16214)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 12 februarie 2007 16:45:23
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <math.h>
#include <iostream.h>
#include <fstream.h>
typedef struct nod
{unsigned long n;
 nod *urm;
}*PNOD;
PNOD prim=NULL,ultim=NULL;

void adauga(unsigned long n)
{PNOD q=new nod;
 if(!prim)
 {prim=q;}
 else
 {ultim->urm=q;}
 q->urm=NULL;
 q->n=n;
 ultim=q;
}
void calculeazaNumerePrime(long n)
{PNOD p;
 long i;
 int sw;
 adauga(2);
 for (i=3;i<n;i+=2)
 {sw=0;
  for (p=prim->urm;p!=NULL&&sqrt(i)>=p->n;p=p->urm)
  {if(i%p->n==0)
   {sw=1;
    break;
   }
  }
  if(sw==0)
  {adauga(i);}
 }
}
int main()
{long n,i,j,k=0,sw;
 ifstream f("prim.in");
 f>>n;
 f.close();

 PNOD p;
 calculeazaNumerePrime(n/2+1);
 for (i=1;i<=n;i++)
 {for (j=1;j<=n;j++)
  {p=prim;
   while(p)
   {if((i%p->n==0&&j%p->n==0)||(i==j&&(i!=1||j!=1)))
    {k++;
     //cout <<i<<" "<<j<<endl;getch();
     break;
    }
    p=p->urm;
   }

  }
 }
 ofstream fout("prim.out");
 fout<<n*n-k;
 fout.close();
 return 0;
}