问个问题
查看原帖
问个问题
804115
yzm0325楼主2023/6/25 21:40

我的 80pts 代码是这样的:

#include <bits/stdc++.h>
using namespace std;
int x, y, pri[100010], pnum[100010], id, sum;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> x >> y;
    if(x > y) swap(x, y);
    if(x == 1) sum--;
    for(int i = 2; i <= y; i++) {
        if(!pri[i]) pnum[++id] = i;
        for(int j = 1; j <= id && i * pnum[j] <= y; j++) {
            pri[i * pnum[j]] = 1;
            if(i % pnum[j] == 0) break;
        }
    }
    for(int i = x; i <= y; i++) if(!pri[i]) sum++;
    cout << sum;
    return 0;
}

RE on #3. 而我把数组再开大 10 倍就过了,这是因为题目里有什么陷阱我没注意到还是数据问题??

求解决!!

2023/6/25 21:40
加载中...