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

牛客练习题——素数(质数)

质数数量

改题目需要注意的是时间

如果进行多次判断就会超时,这时需要使用素数筛结合标志数组进行对所有数据范围内进行判断,而后再结合前缀和将结果存储到数组中,就可以在O(1)的时间复杂度求出素数个数。

 

#include<iostream>

using namespace std;

const int N=1000000+10 ,M=1000;
int t,n;
int a[N];

int main()
{
	//此时a[i]作为标志数组,判断是否为素数 
	for(int i=2;i<=M;i++)//判断素数范围,一般是根号N 
	{
		if(a[i]==0)//没有访问过,即是素数 
		{
			for(int j=i*i;j<N;j+=i)
				a[j]=1;//将所有i的倍数都不是素数
		}
	}
	
	for(int i=2;i<N;i++)
	{
		if(a[i]==0)//第a[i]个素数的前缀和,此时a[i]存放小于等于i的素数个数 
			a[i]=a[i-1]+1;
		else
			a[i]=a[i-1];
	}
	cin>>t;
	while(t--)
	{
		cin>>n;
		cout<<a[n]<<endl;
	}
	return 0;
 } 

http://www.dtcms.com/a/108673.html

相关文章:

  • 策略模式实际用处,改吧改吧直接用,两种方式
  • DataFrame行索引操作以及重置索引
  • 第二期:深入理解 Spring Web MVC [特殊字符](核心注解 + 进阶开发)
  • Golang封装Consul 服务发现库
  • Linux进程管理与进程间通信
  • 如何将本地项目上传到Gitee的指定分支
  • 【2-6】数字调制
  • 蓝桥杯2024JavaB组的一道真题的解析
  • 云计算:基础、概念与未来展望
  • vue2拖拉拽做个模拟公式工具
  • 计算机视觉算法实战——基于YOLOv8的行人流量统计系统
  • 缺页异常导致的iowait打印出相关文件的绝对路径
  • Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件
  • RAG库搭建:从零开始,开启智能问答新世界
  • OpenCV 图形API(15)计算两个矩阵(通常代表二维向量的X和Y分量)每个对应元素之间的相位角(即角度)函数phase()
  • Ubuntu换Windows磁盘格式化指南
  • 二,<FastApi>FastApi的两个核心组件
  • JavaScript基础-window.sessionStorage
  • 通信算法之255:无人机频谱探测设备技术详解
  • 使用Kafka和kafkajs构建示例项目
  • 前端面试题(三):axios有哪些常用的方法
  • Linux上位机开发实践(从用板子到自己做板子)
  • 针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结
  • Webpack vs Vite:现代前端构建工具的巅峰对决与选型指南
  • Linux学习七——进程回收
  • 一文详解QT环境搭建:Windows平台Qt安装配置指南
  • react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析--react18
  • 电脑异常关机导致oracle监听器启动后自动停止
  • 蓝桥杯 web 请到下一步
  • Spread使用 配合report使用前篇