SP13015 CNTPRIME - Counting Primes
题目描述
给你一个 $n$ 个数的数组和 $m$ 个操作:
- $0\ x\ y\ v$ 将 $x$ 到 $y$ 之间的所有数改成 $v$。
- $1\ x\ y$ 求 $x$ 到 $y$ 之间的质数个数。
数组下标为 $1$ 到 $n$。
输入格式
第一行是一个整数 $T$,表示数据组数。
每组数据包含两个整数 $n$,$q$。
下一行是 $n$ 个整数表示数组 $a_i$。接下来的 $q$ 行,每行包含一个操作。形如:
- $0\ x\ y\ v$
- $1\ x\ y$
$1 \le n \le {10}^4$,$1 \le q \le 2 \times {10}^4$,$2 \le x,y,v,a_i \le 10^6$
输出格式
对于每组数据,先输出数据编号。然后对于每一个 $1\ x\ y$ 的询问,输出 $x$ 到 $y$ 之间的质数个数。
说明/提示
- 使用较快的输入输出方式,如 `scanf` 和 `printf`。
- 一个质数是一个除了 $1$ 和它本身意外没有其他正因数的大于 $1$ 的自然数。前几个质数是 $2,3,5,7,11...$