Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define N 100001
- using namespace std;
- ifstream fin("elimin_prime.in");
- ofstream fout("elimin_prime.out");
- struct nod
- {
- int info;
- nod *urm;
- };
- nod* prim;
- int n;
- bool Prime[N];
- void Ciur(int n)
- {
- Prime[0]=Prime[1]=1;
- for(int i=2; i<=n; i++)
- if(Prime[i]==0)
- for(int j=2; j*i<=n; j++)
- Prime[i*j]=1;
- }
- void Citire(nod*&prim)
- {
- int x;
- nod*p,*q;
- for(int i=1; i<=n; i++)
- {
- fin>>x;
- q=new nod;
- q->info=x;
- q->urm=NULL;
- if(prim==NULL)
- {
- prim=q;
- p=q;
- }
- else
- {
- p->urm=q;
- p=q;
- }
- }
- }
- void Elimin(nod*&prim)
- {
- nod*p,*q;
- int k=1;
- fout<<prim->info<<' ';
- p=prim;
- while(p->urm!=NULL)
- {
- k++;
- if(Prime[k]==0)
- {
- fout<<p->urm->info<<' ';
- q=p->urm;
- p->urm=p->urm->urm;
- delete q;
- }
- else p=p->urm;
- }
- q=prim;
- prim=prim->urm;
- delete q;
- }
- int main()
- {
- fin>>n;
- Ciur(n);
- Citire(prim);
- while(prim!=NULL) Elimin(prim);
- return 0;
- }
Add Comment
Please, Sign In to add comment