Skip to content

Commit 1d61518

Browse files
author
Nadim-Mahmud
committed
segemented sieve
1 parent 2360840 commit 1d61518

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
/// *** Segmented Sieve O( sqrt(up) + prime sieve )
3+
4+
/** [l = lower limit, u = upper limit]
5+
* [first generate all prime upto sqrt(upper limit)]
6+
* [Checking prime
7+
* n = number into that segment]
8+
* if(!mark[n-l]) then it is prime
9+
*/
10+
bool mark[u-l];
11+
void segsiv(ll l, ll u)
12+
{
13+
ll i,j,lt;
14+
if(l==1) mark[0] = 1;
15+
for(i=1; i<=in&&pr[i]*pr[i]<=u; i++){
16+
lt = l/pr[i];
17+
lt *= pr[i];
18+
if(lt<l) lt += pr[i];
19+
if(pr[i]==lt) lt += pr[i];
20+
for(lt; lt<=u; lt+=pr[i]){
21+
mark[lt-l] = 1;
22+
}
23+
}
24+
}
25+
26+

0 commit comments

Comments
 (0)