比赛 2026.5.30 评测结果 WWWWWWWWEEEEEEEEEEEE
题目名称 水母序列 最终得分 0
用户昵称 VTXE 运行时间 4.957 s
代码语言 C++ 内存使用 23.20 MiB
提交时间 2026-05-30 10:16:24
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long

ll n,m;
ll a[110000];
ll f[1100][1100];
ll p[2100000];

void init(){
	p[0]=1;
	p[1]=1;
	for (int i=2;i<2100000;i++){
		if (p[i]==0){
			for (int j=i;j<2100000/i;j++){
				p[i*j]=1;
			}
		}
	}
}

ll read(){
	ll res=0;
	char c=getchar();
	while (isdigit(c)){
		res=res*10+c-'0';
		c=getchar();
	}
	return res;
}

int main(){
	freopen("Jelly.in","r",stdin);
	freopen("Jelly.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	init();
	n=read();m=read();
	for (int i=1;i<=n;i++){
		a[i]=read();
	}
	for (int i=1;i<=n;i++){
		if (p[a[i]]==0){
			 f[i][i]=1;
		}
	}
	for (int i=1;i<=n;i++){
		for (int j=i+1;j<=n;j++){
			f[i][j]=f[i][j-1]+f[j][j];
			ll o=a[j];
			for (int k=j-1;k>=i;k--){
				o|=a[k];
				if (p[o]==0){
					f[i][j]++;
				}
			}
		}
	}
	for (int i=1;i<=m;i++){
		ll l,r;
		l=read();r=read();
		cout<<f[l][r]<<'\n';
	}
	return 0;
}