牛客题解 | 学数学
1.牛客题解 | 几个岛2.牛客题解 | 分割后处理3.牛客题解 | 分布式集群消息传递4.牛客题解 | 分玩具5.牛客题解 | 分田地6.牛客题解 | 分石头7.牛客题解 | 分苹果8.牛客题解 | 分贝壳9.牛客题解 | 列表补全10.牛客题解 | 删数11.牛客题解 | 删除公共字符12.牛客题解 | 删除重复字符13.牛客题解 | 删除重复字符_114.牛客题解 | 判断一棵满二叉树是否为二叉搜索树15.牛客题解 | 判断题16.牛客题解 | 包裹运输17.牛客题解 | 区间表达18.牛客题解 | 升级蓄水池19.牛客题解 | 单词缩写20.牛客题解 | 卡中心密码安全规范21.牛客题解 | 卡中心美食家22.牛客题解 | 厨艺大赛奖金23.牛客题解 | 友好城市24.牛客题解 | 双素数25.牛客题解 | 双色塔26.牛客题解 | 双袋购物27.牛客题解 | 发奖金28.牛客题解 | 古巴比伦迷宫29.牛客题解 | 句子反转30.牛客题解 | 吃鱼31.牛客题解 | 合唱团32.牛客题解 | 合并区间33.牛客题解 | 合并果子34.牛客题解 | 商品交易35.牛客题解 | 回合制游戏36.牛客题解 | 回文37.牛客题解 | 回文串38.牛客题解 | 回文序列39.牛客题解 | 回文数索引40.牛客题解 | 回文数组41.牛客题解 | 回文素数42.牛客题解 | 图的遍历43.牛客题解 | 图的闭包44.牛客题解 | 地下迷宫45.牛客题解 | 地牢逃脱46.牛客题解 | 地鼠逃跑计划47.牛客题解 | 堆棋子48.牛客题解 | 堆棋子_149.牛客题解 | 塔50.牛客题解 | 外卖满减51.牛客题解 | 多数组中位数52.牛客题解 | 多数组第 K 小数53.牛客题解 | 大家来扫雷54.牛客题解 | 大巴车(数组分块,按块翻转,块内不变)55.牛客题解 | 大数乘法56.牛客题解 | 大整数相乘57.牛客题解 | 头条校招58.牛客题解 | 奇数位丢弃59.牛客题解 | 奖学金60.牛客题解 | 奶牛编号61.牛客题解 | 好奇的薯队长62.牛客题解 | 如何添加运算符63.牛客题解 | 字母交换64.牛客题解 | 字母卡片65.牛客题解 | 字母数字混合排序66.牛客题解 | 字符串中找出连续最长的数字串67.牛客题解 | 字符串交错组成68.牛客题解 | 字符串价值69.牛客题解 | 字符串分割70.牛客题解 | 字符串匹配71.牛客题解 | 字符串压缩算法72.牛客题解 | 字符串复制73.牛客题解 | 字符串提取74.牛客题解 | 字符串旋转75.牛客题解 | 字符串是否由子串拼接76.牛客题解 | 字符串替换77.牛客题解 | 字符串替换_178.牛客题解 | 字符串最小变换次数79.牛客题解 | 字符串的排列80.牛客题解 | 字符串的旋转81.牛客题解 | 字符串相乘82.牛客题解 | 字符串组合83.牛客题解 | 字符串计数84.牛客题解 | 字符串距离85.牛客题解 | 字符串连连看86.牛客题解 | 字符串通配87.牛客题解 | 字符串问题88.牛客题解 | 字符混编89.牛客题解 | 字符编码90.牛客题解 | 字符覆盖91.牛客题解 | 字符迷阵92.牛客题解 | 字符迷阵_193.牛客题解 | 字符集合94.牛客题解 | 孙悟空的徒弟
95.牛客题解 | 学数学
96.牛客题解 | 安置路灯97.牛客题解 | 完成括号匹配98.牛客题解 | 实现字通配符*99.牛客题解 | 密码检查100.牛客题解 | 密码破译题目
解题思路
- 首先生成小于 的所有素数
- 遍历素数列表,检查每对素数和是否等于
- 由于不考虑顺序,需要避免重复计数
- 注意素数对 和 算作同一对
代码
#include <iostream>
#include <vector>
using namespace std;
// 判断是否为素数
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int n;
cin >> n;
// 生成素数列表
vector<int> primes;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
primes.push_back(i);
}
}
// 统计素数对数量
int count = 0;
for (int i = 0; i < primes.size(); i++) {
for (int j = i; j < primes.size(); j++) {
if (primes[i] + primes[j] == n) {
count++;
}
}
}
cout << count << endl;
return 0;
}
import java.util.*;
public class Main {
// 判断是否为素数
private static boolean isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 生成素数列表
List<Integer> primes = new ArrayList<>();
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
primes.add(i);
}
}
// 统计素数对数量
int count = 0;
for (int i = 0; i < primes.size(); i++) {
for (int j = i; j < primes.size(); j++) {
if (primes.get(i) + primes.get(j) == n) {
count++;
}
}
}
System.out.println(count);
}
}
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def solve():
n = int(input())
# 生成素数列表
primes = [i for i in range(2, n+1) if is_prime(i)]
# 统计素数对数量
count = 0
for i in range(len(primes)):
for j in range(i, len(primes)):
if primes[i] + primes[j] == n:
count += 1
print(count)
if __name__ == "__main__":
solve()
算法及复杂度
- 算法:素数筛选 + 双重循环
- 时间复杂度:,其中素数判断为,需要判断 个数
- 空间复杂度:,存储素数列表
合集:
牛客笔试大厂真题题解2
分类:
牛客笔试大厂真题题解2
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现