Skip to content

Commit 4b0bf15

Browse files
committed
Add problem PRIME1 from codechef
1 parent 780b217 commit 4b0bf15

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

codechef/PRIME1.cpp

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
const int mx = 1e9 + 10;
5+
vector<int> primes;
6+
7+
void gen() {
8+
primes.push_back(2);
9+
for (int p = 3; p * p <= mx; p += 2) {
10+
int i = 2;
11+
int f = true;
12+
while (i * i <= p) {
13+
if (p % i == 0) {
14+
f = false;
15+
break;
16+
}
17+
i ++;
18+
}
19+
20+
if (f) primes.push_back(p);
21+
}
22+
}
23+
24+
bool isPrime(int x) {
25+
if (x == 2) return true;
26+
27+
int i = 0;
28+
while (i < primes.size() && primes[i] * primes[i] <= x) {
29+
if (x % primes[i] == 0) return false;
30+
i ++;
31+
}
32+
return true;
33+
}
34+
35+
int main() {
36+
gen();
37+
int t;
38+
scanf("%d", &t);
39+
40+
int n, m;
41+
while (t --> 0) {
42+
scanf("%d %d", &n, &m);
43+
44+
if (n <= 2) {
45+
printf("2\n");
46+
n = 3;
47+
}
48+
49+
if (n % 2 == 0) n ++;
50+
for (int i = n; i <= m; i += 2) {
51+
if (isPrime(i)) printf("%d\n", i);
52+
}
53+
printf("\n");
54+
}
55+
56+
return 0;
57+
}

0 commit comments

Comments
 (0)