Cod sursa(job #185630)

Utilizator raica_cristiraica dumitru cristian raica_cristi Data 25 aprilie 2008 18:47:11
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include<fstream>

using namespace std;
      
long long unsigned a[100000];

ifstream fin ("ciur.in");
ofstream fout ("ciur.out");

int main ()
{
  int n,i,k,m;
  fin>>n;
  a[1]=1;
  for(i=1;i<n;i++)
  if(i%2==0 && i!=2)
  a[i]=1;
  for(i=1;i<n;i++)
  if(i%3==0 && i!=3)
  a[i]=1;
  for(i=1;i<n;i++)
  if(i%5==0 && i!=5)
  a[i]=1;
  k=5;
  while(k<n)
  {
             for(i=1;i<=n;i++)
             if(a[i]!=1 && i>k)
             {
                        k=i;
                        break;
                        }
                        for(i=k;i<n;i++)
                        if(i%k==0 && i!=k)
                        a[i]=1;
                        }m=0;
                        for(i=1;i<n;i++)
                        {
                                         if(a[i]==0)
                                         m++;
                                         }
                                         fout<<m;
                                         return 0;
                                         }