complete 32643.kt
This commit is contained in:
53
storage/zeta/kt/completed/32643.kt
Normal file
53
storage/zeta/kt/completed/32643.kt
Normal file
@@ -0,0 +1,53 @@
|
||||
class SequenceMaster(n: Int) {
|
||||
val primes = mutableListOf<Int>()
|
||||
|
||||
init {
|
||||
primes.add(2)
|
||||
for (i in 3..n step 2) {
|
||||
var flag = true
|
||||
for (p in primes) {
|
||||
if (p * p > i) {
|
||||
break
|
||||
}
|
||||
if (i % p == 0) {
|
||||
flag = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
primes.add(i)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun request(a: Int, b: Int): Int {
|
||||
val pa = primes.binarySearch(a)
|
||||
val pb = primes.binarySearch(b)
|
||||
|
||||
return if (a == 1) {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
} + if (pa >= 0 && pb >= 0) {
|
||||
pb - pa + 1
|
||||
} else if (pa < 0 && pb >= 0) {
|
||||
pb - (-pa - 1) + 1
|
||||
} else if (pa >= 0) {
|
||||
(-pb - 1) - pa
|
||||
} else {
|
||||
(-pb - 1) - (-pa - 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun main() = with(System.`in`.bufferedReader()) {
|
||||
val (n, m) = this.readLine().split(' ').map { it.toInt() }
|
||||
val seq = SequenceMaster(n)
|
||||
System.out.bufferedWriter().use { bw ->
|
||||
repeat(m) {
|
||||
val (a, b) = this.readLine().split(' ').map { it.toInt() }
|
||||
bw.write("${seq.request(a, b)}\n")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user