题解 | #QQ5 素数对#(哈希表+模拟)

素数对

https://www.nowcoder.com/practice/c96d6acc025541ffb79c579688f8d003

解题思路

1.枚举[1:1000]区间的素数,统计素数对时需要去重(定义第一个数小于等于第二个数即可);

代码

#include <bits/stdc++.h>

using namespace std;

bool check(int t){ //校验i是否为质数 i > 1
    if(t < 4) return true;
    for(int i = 2; i * i <= t; i++){
        if(t % i == 0) return false;
    }
    return true;
}

int main(){
    int x;
    cin >> x;
    unordered_set<int> f; //保存[1:1000]区间范围的质数
    int cnt = 0;
    for(int i = 2; i < 1000; i++){
        if(check(i)) f.insert(i);
    }
    for(auto& val : f){
        if(f.count(x - val) && 2 * val <= x) cnt++; //定义第一个数小于等于第二个数 去重
    }
    cout << cnt;
    return 0;
}
全部评论

相关推荐

程序员小白条:你不是有一段实习了吗,现在找中大厂实习?过段时间要秋招了
我的简历长这样
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务