Cod sursa(job #2802271)

Utilizator ParaschevaaaaParascheva Colesa Paraschevaaaa Data 17 noiembrie 2021 21:01:36
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.24 kb
///Ciurul
///Algoritmul ia toate numerele de la 2 la n si pt fiecare nr, daca nu l-am verificat => este prim si ii eliminam toti multiplii
///Astfel, ramanem doar cu nr prime
#include <iostream>
#include <fstream>
using namespace std;



///define => definim anumite expresii cum vrem noi
#define nmax 2000005

///biblioteca universala
//#include <bits/stdc++.h>

ifstream f("ciur.in");
ofstream g("ciur.out");

void ciur()
{
    long long n = 0;
    f >> n;
//    cout << "-----" << n << "----- \n";

    //bitset => un vector de tip bool (are valori doar de 1 si 0)
    ///vector => la fel ca vectorul obisnuit, dar nu are marime - marimea se dubleaza la nevoie
    ///in acest vector, bagam elementele cu functia push_back, nu putem sa ii atribuim la o casuta anume un anumit element din moment ce nu are marime fixata

    int verificat[1000];

    int prime[100];
    long long m = 0;

    for (long long i=2; i<=n; i++)
    {
        if (verificat[i]==0)
        {
            prime[m] = i;
            m++;
            for (long long j= i+i; j<=n; j+=i)
            {
               verificat[j] = 1;
            }
       }
   }
    cout << m;
   g << m;
}






int main()
{
   ciur();
   return 0;
}