Advertisement
nicuvlad76

Untitled

Mar 27th, 2021
449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 100001
  3. using namespace std;
  4. ifstream fin("elimin_prime.in");
  5. ofstream fout("elimin_prime.out");
  6. struct nod
  7. {
  8.     int info;
  9.     nod *urm;
  10. };
  11. nod* prim;
  12. int n;
  13. bool Prime[N];
  14. void Ciur(int n)
  15. {
  16.     Prime[0]=Prime[1]=1;
  17.     for(int i=2;i<=n; i++)
  18.         if(Prime[i]==0)
  19.         for(int j=2;j*i<=n;j++)
  20.           Prime[i*j]=1;
  21. }
  22. void AddLast(nod*&prim, int x)
  23. {
  24.    nod*p,*q;
  25.    q= new nod;
  26.    q->info=x;
  27.    q->urm=NULL;
  28.    if(prim==NULL) prim=q;
  29.    else{
  30.     for(p=prim;p->urm!=NULL; p=p->urm);
  31.     p->urm=q;
  32.    }
  33. }
  34. void Citire(nod*&prim)
  35. {
  36.   int x;
  37.  
  38.   for(int i=1;i<=n;i++)
  39.   {
  40.       fin>>x;
  41.       AddLast(prim,x);
  42.   }
  43. }
  44. void Elimin(nod*&prim)
  45. {
  46.     nod*p,*q;
  47.     int k=1;
  48.     fout<<prim->info<<' ';
  49.     p=prim;
  50.     while(p->urm!=NULL)
  51.     {
  52.         k++;
  53.         if(Prime[k]==0)
  54.         {
  55.             fout<<p->urm->info<<' ';
  56.             q=p->urm;
  57.             p->urm=p->urm->urm;
  58.             delete q;
  59.         }
  60.         else p=p->urm;
  61.     }
  62.     q=prim;
  63.     prim=prim->urm;
  64.     delete q;
  65. }
  66.  
  67. int main()
  68. {
  69.   fin>>n;
  70.   Ciur(n);
  71.   Citire(prim);
  72.   while(prim!=NULL) Elimin(prim);
  73.   return 0;
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement