全RE求助!!
查看原帖
全RE求助!!
519573
Daniel_yao楼主2022/10/28 10:51
#include <bits/stdc++.h>
#define ll long long
#define H 19260817
#define rint register int
#define For(i,l,r) for(rint i=l;i<=r;++i)
#define FOR(i,r,l) for(rint i=r;i>=l;--i)
#define MOD 1000003
#define mod 1000000007

using namespace std;

inline int read() {
  rint x=0,f=1;char ch=getchar();
  while(ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
  while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
  return x*f;
}

void print(int x){
  if(x<0){putchar('-');x=-x;}
  if(x>9){print(x/10);putchar(x%10+'0');}
  else putchar(x+'0');
  return;
}

const int N = 100000010, M = 1000010;

int n, q, prime[M], cnt;

bool f[N];

void init() {
  memset(f, 1, sizeof f);
  f[1] = 0;
  For(i,2,n) {
    if(f[i]) prime[++cnt] = i;
    for (int j = 1; j <= cnt && i * prime[j] <= n; j++) {
      f[i * prime[j]] = 0;
      if(i % prime[j] == 0) break; 
    }
  }
}

signed main() {
  n = read(), q = read();
  init();
  while(q--) {
    int k = read();
    cout << prime[k] << '\n';
  }
  return 0;
}

话说CSP考欧拉筛的几率大不大?

2022/10/28 10:51
加载中...