Pagini recente » Monitorul de evaluare | Cod sursa (job #1735461) | Cod sursa (job #2884152) | Cod sursa (job #2188389) | Cod sursa (job #516384)
Cod sursa(job #516384)
#include<stdio.h>
#include<stdlib.h>
typedef struct nod
{long info;
struct nod *urm;}Nod,*list;
void add(list &l,long x)
{Nod *p,*nou=new Nod;
nou->info=x;
nou->urm=NULL;
if(l==NULL)
{l=nou;
return;}
p=l;
while(p->urm!=NULL)
p=p->urm;
p->urm=nou;}
void del(list &l,long x)
{Nod *p=l,*q=l;
while(p!=NULL&&p->info!=x)
{q=p;
p=p->urm;}
if(p!=NULL)
{if(q==p)
l=l->urm;
else
q->urm=p->urm;
free(p);}}
int find(list &l,long x)
{Nod *p=l;
while(x!=p->info&&p!=NULL)
p=p->urm;
if(p->info==x)
return 1;
return 0;}
int main()
{long n,t,j,k,v;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
list l=NULL;
scanf("%ld",&n);
for(j=2;j<=n;j++)
add(l,j);
k=n;
j=2;
while(j*j<=n)
{if(find(l,j)==1)
for(t=2;t*j<=n;t++)
{del(l,t*j);
k--;}
j++;}
printf("%ld",k);
return 0;}