nicuvlad76

2198

Mar 27th, 2021 (edited)
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 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.  
  23. void Citire(nod*&prim)
  24. {
  25.   int x;
  26.   nod*p,*q;
  27.   for(int i=1; i<=n; i++)
  28.   {
  29.     fin>>x;
  30.     q=new nod;
  31.     q->info=x;
  32.     q->urm=NULL;
  33.     if(prim==NULL)
  34.     {
  35.       prim=q;
  36.       p=q;
  37.     }
  38.     else
  39.     {
  40.       p->urm=q;
  41.       p=q;
  42.     }
  43.   }
  44. }
  45. void Elimin(nod*&prim)
  46. {
  47.   nod*p,*q;
  48.   int k=1;
  49.   fout<<prim->info<<' ';
  50.   p=prim;
  51.   while(p->urm!=NULL)
  52.   {
  53.     k++;
  54.     if(Prime[k]==0)
  55.     {
  56.       fout<<p->urm->info<<' ';
  57.       q=p->urm;
  58.       p->urm=p->urm->urm;
  59.       delete q;
  60.     }
  61.     else p=p->urm;
  62.   }
  63.   q=prim;
  64.   prim=prim->urm;
  65.   delete q;
  66. }
  67.  
  68. int main()
  69. {
  70.   fin>>n;
  71.   Ciur(n);
  72.   Citire(prim);
  73.   while(prim!=NULL) Elimin(prim);
  74.   return 0;
  75. }
  76.  
Add Comment
Please, Sign In to add comment