14,691,238 members
See more:
```def asallar(limit):
limitn = limit+1
asal_degil = [False] * limitn
asal_listesi = []

for i in range(2, limitn):
if asal_degil[i]:
continue
for f in xrange(i*2, limitn, i):
asal_degil[f] = True
asal_listesi.append(i)

return asal_listesi```

```a = asallar(1000000)
print a[9999]```

`timeit asallar(1000000)`
Posted
Updated 3-Nov-20 3:25am
v2

Page 1 of 2

## Solution 11

```#include <iostream>
using namespace std;

vector <int>  asallar(size_t limit)
{
vector <bool> nov(limit+1, false);
vector <int> result;
for (size_t i=2; i<=limit; ++i)
{
if ( nov[i] ) continue;
for (size_t f = i*2; f<=limit; f+=i)
{
nov[f] = true;
}
result.push_back(i);
}
return result;
}

int main()
{
auto v = asallar(1000000);
}```

Timing:
```Python program: about 300 ms
C++ program:    about 100 ms```

Please note: if a `vector<int>` (instead of a `vector<bool>`) is used in the `C++` program, then the execution speed is doubled.
Afzaal Ahmad Zeeshan 15-Mar-19 9:18am

5ed.
CPallini 18-Mar-19 3:47am

Thanks.

## Solution 1

For C, something like in the comments:

```def asallar(limit): \\ void asallar(int limit, int* asal_listesi){
limitn = limit+1 \\ int limitn =limit+1;
asal_degil = [False] * limitn \\ int *asal_degil = malloc(...)
asal_listesi = [] \\ vector asal_listesi;

for i in range(2, limitn): \\ for(int i=2; i<limitn;>       if asal_degil[i]: \\ if(asal_degil[i])
continue       \\ continue;
for f in xrange(i*2, limitn, i): \\ etc
asal_degil[f] = True
asal_listesi.append(i)

return asal_listesi```

Page 1 of 2
1 2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 Richard Deeming 315 OriginalGriff 258 Richard MacCutchan 193 Gerry Schmitz 80 Dave Kreskowiak 60
 OriginalGriff 5,071 Richard Deeming 2,765 Richard MacCutchan 2,369 CPallini 1,707 Patrice T 1,320

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900