Pagini recente » Cod sursa (job #1412576) | Cod sursa (job #300104) | Cod sursa (job #2894194) | Cod sursa (job #560790) | Cod sursa (job #1861322)
#include <fstream>
#include <iostream>
#define nmax 2000000
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int n, i, j, nr;
bool A[nmax];
int main() {
fin>>n;
/* i: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
A[i]: 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 */
for (i = 2; i <= n; i++)
if (A[i] == 0)
{
nr++;
for (j =i * 2; j <= n; j += i) A[j] = 1;
}
fout << nr << "\n";
}
// Andrei mi-a aratat ciurul lui eratostenes (nici acum nu stiu cum se scrie...)
// o problema mare care o aveam era ca depaseam memoria si asta pentru ca in loc de bool A[] eu aveam int A[];