漂亮数 (线性筛+前缀和)

news/2025/2/2 0:58:40 标签: 算法, c++, 线性筛

登录—专业IT笔试面试备考平台_牛客网
 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'

const int N=1e8+5;
int primes[N],cnt;
bool st[N];
int ans[N];
/*
//多余
bool divide(int n)
{
	int cnt=0;
	for(int i=2;i<=n/i;i++)
	{
		if(n%i==0)
		{
			while(n%i==0)
			{
				cnt++;
				if(cnt>2)return false;
				n/=i;
			}
		}
	}
	if(n)cnt++;
	if(cnt!=2)return false;
	else return true;
}
*/
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(divide(primes[j]*i))ans[primes[j]*i]=1;
            //这里不需要一个一个判断,如果st[i]==0代表i就是原始素数
            //那么i*primes[j]就是两素数之积
			if(!st[i])ans[primes[j]*i]=1;
			if(i%primes[j]==0)break;
		}
	}
}

int main()
{
	get_primes(N-1);
	for(int i=1;i<=N-1;i++)ans[i]+=ans[i-1];
    //因为需要10^5次查找而且查找范围为10^8,所以为省时可以一次性查完所有
	int t;cin>>t;
	while(t--)
	{
		int l,r;cin>>l>>r;
		cout<<ans[r]-ans[l-1]<<endl;
	}
}


 


http://www.niftyadmin.cn/n/5839675.html

相关文章

基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 .…

MYSQL--一条SQL执行的流程,分析MYSQL的架构

文章目录 第一步建立连接第二部解析 SQL第三步执行 sql预处理优化阶段执行阶段索引下推 执行一条select 语句中间会发生什么&#xff1f; 这个是对 mysql 架构的深入理解。 select * from product where id 1;对于mysql的架构分层: mysql 架构分成了 Server 层和存储引擎层&a…

DeepSeek本地版安装简易教程(windows)

第一步&#xff1a;下载 第二步&#xff1a;安装 先安装ollama&#xff0c;安装完毕保持ollama运行&#xff0c;设置ollama通过防火墙&#xff0c;再安装deepseek&#xff0c;7b代表下载的r1版本&#xff0c;版本越高消耗资源越大 第三步&#xff1a;开放windows防火墙 第四步…

用一个例子详细说明python单例模式

单例模式是一种设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。这在需要控制资源&#xff08;如数据库连接、文件系统等&#xff09;的访问时非常有用。 下面是一个使用Python实现单例模式的例子&#xff1a; class Singleton:…

【C++语言】卡码网语言基础课系列----3. A+B问题III

文章目录 练习题目AB问题III具体代码实现 小白寄语诗词共勉 练习题目 AB问题III 题目描述&#xff1a; 你的任务依然是计算ab。 输入描述&#xff1a; 输入中每行是一对a和b。其中会有一对是0和0标志着输入结束&#xff0c;且这一对不要计算。 输出描述&#xff1a; 对于输入…

为AI聊天工具添加一个知识系统 之80 详细设计之21 符号逻辑 之1

本文要点 要点 前面我们讨论了本项目中的正则表达式。现在我们将前面讨论的正则表达式视为狭义的符号文本及其符号规则rule&#xff08;认识的原则--认识上认识对象的约束&#xff09;&#xff0c;进而在更广泛的视角下将其视为符号逻辑及其符号原则principle&#xff08;知识…

C# 实现 “Hello World” 教程

.NET学习资料 .NET学习资料 .NET学习资料 C# 作为一种广泛应用于.NET 开发的编程语言&#xff0c;以其简洁、高效和类型安全等特性&#xff0c;深受开发者喜爱。在踏入 C# 编程领域时&#xff0c;编写经典的 “Hello World” 程序是重要的起点&#xff0c;它能帮助我们快速熟…

Linux中使用unzip

安装命令 yum install unzip unzip常用选项和参数 选项 说明 -q 隐藏解压过程中的消息输出 -d /path/to/directory 指定解压文件的目标目录 -P password 如果.zip文件被密码保护&#xff0c;使用此选项可以指定打开文件所需的密码 解压命令 unzip 要解压的压缩包unz…