Cod sursa(job #2728396)

Utilizator thinkphpAdrian Statescu thinkphp Data 23 martie 2021 10:58:09
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

typedef unsigned long ulong;

int Eratosthenes(ulong n) {

    ulong i, j, arr[n+1], size = n - 1;
    
    for(i = 2; i < n + 1; i++) arr[i] = 1;

    i = 2;
    
    while(i * i <= n) {
    
      if( arr[ i ] == 1 ) {
      
           j = 2;
           
           while( i * j <= n ) {
           
                 int multiply = i * j;
                 
                 if(arr[ multiply ] == 1) size--;
                 
                 arr[ multiply ] = 0; 
                 
                 j++;
           }
      }
    i++;      
    }      
    
    return size;
}

int main() {

ulong N;

    ifstream fin("ciur.in");
    ofstream fout("ciur.out");
    
    fin>>N;
    fout<<Eratosthenes(N);
 
}