Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- bool isSimp(int n)
- {
- int k = 0;
- if(n <= 0){return 0;}
- if(n==1 || n == 2){return 1;}
- for(int i = 3; i < n; i++)
- {
- if(n%i==0){return 0;}
- }
- return 1;
- }
- struct dlist
- {
- int info;
- dlist *prev, *next;
- };
- int main()
- {
- int x;
- int k = 0;
- cin >> x;
- dlist *head, *p, *r;
- head = new dlist;
- head -> info = x; head -> prev = NULL; head -> next = NULL;
- p = head;
- cin >> x; k++;
- while(x)
- {
- k++;
- r = new dlist;
- p->next = r;
- r -> info = x; r -> prev = p; r->next = NULL;
- p = r;
- cin >> x;
- }
- if(k%2==0)
- {
- p = head;
- while(p!=NULL)
- {
- if(isSimp(p->info)==1)
- {
- if(p->next!=NULL)
- {
- if(p->next->next==NULL)
- {
- r = p->next;
- p->next = NULL;
- delete r;
- }
- else
- {
- r = p->next;
- p->next->next->prev = p;
- p->next = p->next->next;
- delete r;
- }
- }
- }
- p = p->next;
- }
- }
- else
- {
- p = head;
- while(p!=NULL)
- {
- if(p->next!=NULL)
- {
- if(p->info%2==0&&p->next->info%2==0)
- {
- cout << "Enter number to insert: "; int n; cin >> n;
- dlist *r = new dlist;
- r -> info = n;
- r->next = p->next; r->prev = p;
- p->next->prev = r; p->next = r;
- p = r;
- }
- }
- p=p->next;
- }
- }
- p = head;
- while(p!=NULL)
- {
- cout << p->info << endl;
- p = p->next;
- }
- while(head!=NULL)
- {
- r = head;
- head = head->next;
- delete r;
- }
- }
Add Comment
Please, Sign In to add comment