diff --git a/storage/zeta/kt/completed/32643.kt b/storage/zeta/kt/completed/32643.kt new file mode 100644 index 0000000..d49430b --- /dev/null +++ b/storage/zeta/kt/completed/32643.kt @@ -0,0 +1,53 @@ +class SequenceMaster(n: Int) { + val primes = mutableListOf() + + 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") + } + } + +} \ No newline at end of file