Pagini recente » Cod sursa (job #938605) | Cod sursa (job #2231395) | Cod sursa (job #1439310) | Cod sursa (job #2312899) | Cod sursa (job #3196778)
#include <iostream>
#include <fstream>
#define FIN "ciur.in"
#define FOUT "ciur.out"
//n = 10
//2,3,5,7 => 4 numere prime
using namespace std;
typedef unsigned long ulong;
typedef unsigned int u_int;
int Eratosthenes(ulong n) {
ulong i, j,
size = n - 1;
//n = 10 - 1
bool arr[ n + 1 ];
for(i = 2; i < n + 1; i++) arr[ i ] = true;
//arr: 1 1 1 1 0 1 0 1 0 0 0
//ind: 0 1 2 3 4 5 6 7 8 9 10
i = 2;
//n = 10
while( i * i <= n ) {
if( arr[ i ] == true ) {
j = 2;
while( i * j <= n ) {
int multiply = i * j;
if(arr[ multiply ] == 1) size--;
arr[ multiply ] = false;
j++;
}
}
i++;
}
return size;
}
int main(int argc, char const *argv[]) {
ifstream fin( FIN );
ofstream fout( FOUT );
ulong n;
fin>>n;
fout<<Eratosthenes( n );
return 0;
}