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

简简单单的质数(复习)

加强一下质数学习,用线性筛选法降低时间复杂度,提高效率 

1.纯质数

题目链接:竞赛中心 - 蓝桥云课 (lanqiao.cn)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 20210605; // 质数生成范围int primes[N], cnt;  // primes[]存储所有的质数,cnt质数数量
bool st[N];         // st[x]表示 x 是否被标记(存储的是非质数)// 线性筛法生成质数(直接用模板)
void get_primes(int n)
{for (int i = 2; i <= n; i++){if (!st[i]) primes[cnt++] = i;for (int j = 0; primes[j] <= n / i; j++){st[primes[j] * i] = true;if (i % primes[j] == 0) break;}}
}// 检查一个数是否是质数
bool is_prime(int x)
{if (x < 2) return false;if (x < N) return !st[x];return false;
}//数位拆分
int fun(int y)
{int sign=0;while(y){sign=y%10;y/=10;if(!is_prime(sign)){return 0;}}return 1;
}int main()
{int sum=0;get_primes(20210605);for(int i=0; i<cnt; i++){sum+=fun(primes[i]); }cout<<sum<<endl;return 0;
}

2.哥德巴赫猜想

题目链接:E-哥德巴赫猜想_河南萌新联赛2024第(五)场:信息工程大学 (nowcoder.com) 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 50010; // 质数生成范围
int t;int primes[N], cnt;  // primes[]存储所有的质数
bool st[N];         // st[x]表示 x 是否被标记(存储的是非质数)// 线性筛法生成质数(直接用模板) 
void get_primes(int n)
{for (int i = 2; i <= n; i++){if (!st[i]) primes[cnt++] = i;for (int j = 0; primes[j] <= n / i; j++){st[primes[j] * i] = true;if (i % primes[j] == 0) break;}}
}// 检查一个数是否是质数
bool is_prime(int x)
{if (x < 2) return false;if (x < N) return !st[x];return false;
}int main()
{get_primes(50000);cin >> t;while (t--){int n;cin >> n;bool found = false;for (int i = 0; i < cnt; i++){for (int j = i; j < cnt; j++){int temp = n - primes[i] - primes[j];if (temp > 0 && is_prime(temp) && temp >= primes[j]){cout << primes[i] << " " << primes[j] << " " << temp << endl;found = true; break; }}if (found){break;}}if (!found){cout << -1 << endl;}}return 0;
}

http://www.mrgr.cn/news/47368.html

相关文章:

  • JVM之垃圾回收器概述(续)的详细解析
  • 1.两数之和--力扣
  • Jenkins内修改allure报告名称
  • IoTDB 常见问题 QA 第三期
  • web服务器+selinux实验
  • 自动驾驶---E2E架构演进
  • 多功能点击器(文末附Gitee源码)——光遇自动弹奏
  • 【项目实战】g-sensor输出的gyro数据值没有变化
  • PyCharm 项目解释器切换指南:如何在项目中更换 Python Interpreter
  • C语言小测复习
  • Android -- [SelfView] 多动画效果图片播放器
  • ChatGPT国内中文版镜像网站整理合集(2024/10/06)
  • Sql Server 生成脚本中的快速删除空行问题
  • VScode连接远程服务器踩坑实战(新版离线vscode-server安装)
  • 开发与部署项目依赖管理之旅:Docker和venv区别
  • 洛谷 P3092 [USACO13NOV] No Change G 题解
  • 进程概念三
  • 基于MicroPython的Raspberry Pi Pico按键点灯的设计方案
  • Hunuan-DiT代码阅读
  • 下载huggingface模型到本地
  • CDC和RDC分别适用于哪些场景?
  • 第十九章 基于逻辑回归的信用卡欺诈检测
  • Python数据分析-数据预处理、统计与分析
  • vue3数字滚动插件vue3-count-to
  • 基于SpringBoot+Vue+Uniapp警务辅助人员管理小程序系统的设计与实现
  • 嵌入式面试——FreeRTOS篇(四) 信号量