Untitled
unknown
plain_text
2 years ago
1.1 kB
4
Indexable
#include<bits/stdc++.h> using namespace std; long long m=1e6+7; vector<bool>isPrime(m+1,true); void sieve() { isPrime[0]=isPrime[1]=false; for (int i=2;i*i<=m;i++) { if(isPrime[i]) { for(int j=i*i;j<=m;j+=i) { isPrime[j]=false; } } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); sieve(); long long n,l,r; cin>>n>>l>>r; long long a[n+1]; for(int i=1;i<=n;i++) { cin>>a[i]; } map<long long,long long>cnt; for(int i=1;i<=n;i++) { if(isPrime[a[i]]) { cnt[i]=cnt[i-1]+1; } else { cnt[i]=cnt[i-1]; } } long long d=0; for(int i=1;i<=n;i++) { if(cnt[i]>=l) { for(int j=1;j<=i;j++) { long long t=cnt[i]-cnt[j-1]; if(t>=l&&t<=r) { cout<<j<<" "<<i<<"\n"; d++; } } } } cout<<d; return 0; }
Editor is loading...