10 分其余全RE,求助!!!
  • 板块P3912 素数个数
  • 楼主MaxLHy
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/8/23 19:42
  • 上次更新2024/8/23 21:54:43
查看原帖
10 分其余全RE,求助!!!
1381143
MaxLHy楼主2024/8/23 19:42

实在想不出来其他求素数的方法了, 就想用多线程骗点分, 结果就第一个过了, 其余全 RE (

我的解法 (C++ 20):

#include<iostream>
#include<atomic>
#include<thread>
#include<cmath>
std::atomic<unsigned>ans{};
auto f(unsigned x){
    if(!(x^2)){
        goto END;
    }
    if((x<2)||!(x%2)){
        return;
    }
    for(unsigned i{3};i<sqrt(x)+1;i+=2){
        if(!(x%i)){
            return;
        }
    }
END:
    ++ans;
    return;
}
auto main()->int{
    std::ios::sync_with_stdio(false),std::cin.tie(nullptr),std::cout.tie(nullptr);
    unsigned n;
    std::cin>>n;
    for(unsigned i{1};i<n-1;++i){
        std::thread(f,i).detach();
    }
    std::thread(f,n).join();
    std::cout<<ans;
    return 0;
}
2024/8/23 19:42
加载中...