当前位置: 首页 > news >正文

欧拉计划 Project Euler60(素数对集合)题解

欧拉计划 Project Euler 60 题解

  • 题干
  • 思路
  • code

题干

在这里插入图片描述

思路

先欧拉筛预处理出素数,然后dfs,注意剪枝,不然太容易炸了

code

//13 5197 5701 6733 8389 
//26033
#include <bits/stdc++.h>using namespace std;using ll = long long;bool isprime(ll x) {if (x < 2) return false;for (ll i = 2; i * i <= x; ++i) {if (x % i == 0) return false;}return true;
}// 检查两个数拼接后是否是素数
bool check(ll a, ll b) {string s1 = to_string(a) + to_string(b);string s2 = to_string(b) + to_string(a);return isprime(stoll(s1)) && isprime(stoll(s2));
}// Euler筛提前先筛选一部分素数
vector<int> generatePrime(int li) {vector<int> pris;bool vis[li + 1];memset(vis, true, sizeof(vis));for (int i = 2; i < li; ++i) {if (vis[i]) pris.push_back(i);for (int p : pris) {if (i * p >= li) break;vis[i * p] = false;if (i % p == 0) break;}}return pris;
}// dfs 找满足条件的素数
void dfs(vector<int> &pris, vector<int> cur, int idx, int &minsum, vector<int> &ans) {if (cur.size() == 5) {int sum = 0;for (int p : cur) {sum += p;}if (sum < minsum) {minsum = sum;ans = cur;}return ;}for (int i = idx; i < pris.size(); ++i) {bool flag = true;for (int p : cur) {if (!check(p, pris[i])) {flag = false;break;}}if (flag) {cur.push_back(pris[i]);dfs(pris, cur, i + 1, minsum, ans);cur.pop_back();}}
}void solve() {int li = 10000;vector<int> pris = generatePrime(li);vector<int> cur, ans;int minsum = INT_MAX;dfs(pris, cur, 0, minsum, ans);for (int p : ans) {cout << p << " ";}cout << "\n";cout << minsum << "\n";}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int tt = 1; // cin >> tt;while (tt--) {solve();}return 0;
}

在这里插入图片描述

http://www.xdnf.cn/news/221167.html

相关文章:

  • LeetCode 2302 统计得分小于K的子数组数目(滑动窗口)
  • Mysql存储引擎、锁机制
  • (2)python之虚拟环境管理工具venv和anaconda
  • Lucene中不同搜索类型的使用方法、基本概念、应用场景、差异对比,并通过表格进行总结
  • JavaScript 作用域全面总结
  • 夜族觉醒 服务搭建 异地联机 保姆教程 流畅不卡顿
  • 【Science】强耦合手性准BIC驱动动量空间可编程高Q圆偏振激光——哈工大突破拓扑光子学新维度
  • GTC Taipei 2025 医疗域前瞻:从AI代理到医疗生态,解码医疗健康与生命科学的未来图景
  • 分享一款免费的 AI 工作流平台
  • Golang 并发编程
  • 从遍历序列构造二叉树:前序+中序与中序+后序的递归解法详解
  • USB 网卡——RNDIS 介绍
  • 数据资产:价值的源泉与释放之道
  • Langchain组件
  • 高级前端面试题:基于2025年最新技术体系
  • TS学习指南
  • 人工智能和机器学习在包装仿真中的应用与价值
  • MQTT - Android MQTT 编码实战(MQTT 客户端创建、MQTT 客户端事件、MQTT 客户端连接配置、MQTT 客户端主题)
  • Python列表全面解析:从基础到高阶操作
  • 域名转移:什么是转移码/EPP码/授权码?
  • 基于蓝耘MaaS平台进行api调用创建本地智能ai
  • 代码随想录第39天|leetcode198.打家劫舍、leetcode213.打家劫舍II 、leetcode337.打家劫舍III
  • 4月29日日记
  • 【浙江大学DeepSeek公开课】DeepSeek的本地化部署与AI通识教育之未来
  • 高等数学-第七版-下册 选做记录 习题9-5
  • 【记】Laya2.x数字末尾导致换行异常问题
  • Promtail+Loki+Grafana监控日志
  • AD系列:Windows Server 2025 搭建AD域控和初始化
  • 一文读懂 JavaScript 中的深浅拷贝
  • IEC61499编程方式与传统PLC编程方式比较