Technoblade777

Untitled

Apr 29th, 2023
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.13 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. bool isSimp(int n)
  5. {
  6.     int k = 0;
  7.     if(n <= 0){return 0;}
  8.     if(n==1 || n == 2){return 1;}
  9.     for(int i = 3; i < n; i++)
  10.     {
  11.         if(n%i==0){return 0;}
  12.     }
  13.     return 1;
  14. }
  15.  
  16. struct dlist
  17. {
  18.     int info;
  19.     dlist *prev, *next;
  20.  
  21. };
  22.  
  23. int main()
  24. {
  25.     int x;
  26.     int k = 0;
  27.     cin >> x;
  28.     dlist *head, *p, *r;
  29.     head = new dlist;
  30.     head -> info = x; head -> prev = NULL; head -> next = NULL;
  31.     p = head;
  32.  
  33.     cin >> x; k++;
  34.     while(x)
  35.     {
  36.         k++;
  37.         r = new dlist;
  38.         p->next = r;
  39.         r -> info = x; r -> prev = p; r->next = NULL;
  40.         p = r;
  41.         cin >> x;
  42.     }
  43.  
  44.     if(k%2==0)
  45.     {
  46.         p = head;
  47.         while(p!=NULL)
  48.         {
  49.             if(isSimp(p->info)==1)
  50.             {
  51.                 if(p->next!=NULL)
  52.                 {
  53.                     if(p->next->next==NULL)
  54.                     {
  55.                         r = p->next;
  56.                         p->next = NULL;
  57.                         delete r;
  58.                     }
  59.                     else
  60.                     {
  61.                         r = p->next;
  62.                         p->next->next->prev = p;
  63.                         p->next = p->next->next;
  64.                         delete r;
  65.                     }
  66.                 }
  67.             }
  68.             p = p->next;
  69.         }
  70.     }
  71.     else
  72.     {
  73.         p = head;
  74.         while(p!=NULL)
  75.         {
  76.             if(p->next!=NULL)
  77.             {
  78.                 if(p->info%2==0&&p->next->info%2==0)
  79.                 {
  80.                     cout << "Enter number to insert: "; int n; cin >> n;
  81.                     dlist *r = new dlist;
  82.                     r -> info = n;
  83.                     r->next = p->next; r->prev = p;
  84.                     p->next->prev = r; p->next = r;
  85.                     p = r;
  86.                 }
  87.             }
  88.             p=p->next;
  89.         }
  90.     }
  91.  
  92.     p = head;
  93.     while(p!=NULL)
  94.     {
  95.         cout << p->info << endl;
  96.         p = p->next;
  97.     }
  98.  
  99.  
  100.     while(head!=NULL)
  101.     {
  102.         r = head;
  103.         head = head->next;
  104.         delete r;
  105.     }
  106. }
Add Comment
Please, Sign In to add comment