蓝桥杯2023年第十四届省赛真题:公因数匹配|数论:分解质因数

前置知识:

下列定理证明来自洛谷题解区: 

 B3715 分解质因子 2 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

学习参考、分解质因数模板

第二十三章 数论——质数(1)(超级详细的推导)_数论中(1 p)(1 p^2)(1 p^3)成为什么-CSDN博客

题目:

1.公因数匹配 - 蓝桥云课 (lanqiao.cn)

说明:

1.C++库自带求最大公约数的函数,__gcd(a,b)。C++知识精讲8——gcd函数使用方法及实战讲解(例题为求最大公约数)_c++ gcd函数-CSDN博客

2. map的几种遍历方式,有几种方式访问键、值也可以使用first、second:

C++ map遍历的几种方式-CSDN博客

3.分解n的质因数只需要枚举到根号n,然后进行一次特判,判断是不是n的唯一一个大于根号n的质因数。

4.质因数对应的数要有两个才可以,这个判断不要漏了。

讲解视频:

[蓝桥杯]真题讲解:公因数匹配(数论:分解质因数)_哔哩哔哩_bilibili

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
//int a[N];
map<int,vector<int>> p;//对每个数都分解质因数,质因数的map 保存所有含有这个质因数数的索引数组 
void prim(int x,int pos){//n最多有一个大于根号n的质因数,且指数为1 for(int i=2;i*i<=x;i++){if(x%i!=0){continue;}p[i].push_back(pos);while(x%i==0){x/=i;}}	//特判一下是否存在这样一个于根号n的质因数if(x>1){//cout<<x<<" ";p[x].push_back(pos);}
}signed main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n;// n 个正整数cin>>n;int y;int ans[2];ans[0]=n-1,ans[1]=n;for(int i=1;i<=n;i++){cin>>y;prim(y,i);}//两种map遍历方式,后者要支持C++11标准 // map<int,vector<int>>::iterator it=p.begin();//for(;it!=p.end();it++)
//   {
//   	//注意!:质因数对应至少有两个数才行 
//   	if(it->second.size()>=2){
//   		if(it->second[0]<ans[0]){
//   		ans[0]=it->second[0];
//   		ans[1]=it->second[1];
//	   }else if(it->second[0]==ans[0]){
//	   	if(it->second[1]<ans[1])
//	   	  ans[1]=it->second[1];
//	   }
//   		
//	   }
//   }for(auto it:p){//注意!:质因数对应至少有两个数才行 if(it.second.size()>=2){if(it.second[0]<ans[0]){ans[0]=it.second[0];ans[1]=it.second[1];}else if(it.second[0]==ans[0]){if(it.second[1]<ans[1])ans[1]=it.second[1];}}}cout<<ans[0]<<' '<<ans[1];return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572166.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学点儿数据库_Day11_多表、等值连接、内连接、模糊查找

1 多表 学生表、班级表、课程表、班级课程表 关系型数据库&#xff1a; MySql、SqlServer、Oracle 相同的数据出现多次绝不是一件好事&#xff0c;这是关系数据库设计的基础。关系表的设计就是要把信息分解成多个表&#xff0c;一个数据一个表&#xff0c;各表通过某些共同的…

Python学习笔记------文件操作

编码 编码就是一种规则集合&#xff0c;记录了内容和二进制间进行相互转换的逻辑。 编码有许多中&#xff0c;我们最常用的是UTF-8编码 计算机只认识0和1&#xff0c;所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码&#xff0c;将计算机保存的0和1&#xff0c…

【Canvas与艺术】模拟八一电影制片厂电影片头效果

【缘起】 八一厂每部电影前都有其专有开头&#xff0c;如&#xff1a;https://www.ixigua.com/6799821997258834440?logTag2eacce76401e13f9efe7 这个片头可以用canvas模拟下来。 【关键点】 线型放射状粒子系统的运作。 立体感五角星的绘制。 【图例】 【代码】 <!D…

江协STM32:点亮第一个LED灯和流水灯

很多单片机都是高电平弱驱动&#xff0c;低电平强驱动&#xff0c;所以这里是低电平有效 点亮一个LED灯 操作STM32的GPIO需要三个操作&#xff1a; 第一个使用RCC开启GPIO的时钟 第二步使用GPIO_Init函数初始化GPIO 第三步使用输出或输入函数控制GPIO 1.使用RCC开启GPIO的时…

maya导入导出bvh 自动 脚本

目录 maya打开脚本编辑器 运行打开bvh脚本 maya导出bvh脚本 maya打开脚本编辑器 打开Maya软件,点击右下角 “脚本编辑器” 运行打开bvh脚本<

自省式RAG 与 LangGraph的实践

自省式 RAG 对实现 RAG 的步骤进行逻辑分析&#xff1a;比如&#xff0c;我们需要知道什么时候进行检索&#xff08;基于问题和索引的构成&#xff09;、何时改写问题以提升检索效率&#xff0c;或者何时抛弃无关的检索结果并重新检索。因此提出了自省式 RAG&#xff0c;自省式…

车载以太网AVB交换机 TSN交换机 时间敏感网络 6端口 百兆 SW100TSN

SW100 TSN时间敏感网络AVB交换机 为6端口百兆车载以太网交换机&#xff0c;其中包含5通道100BASE-T1泰科MATEnet接口和1个通道100/1000BASE-T标准以太网(RJ45接口)&#xff0c;可以实现纳米级时间同步&#xff0c;车载以太网多通道交换&#xff0c;Bypass数据采集和监控等功能&…

【Linux】进程状态(R运行状态、S睡眠状态、D磁盘休眠状态、T停止状态、X死亡状态)

目录 01.运行状态 02.睡眠状态 03.磁盘睡眠状态 04.停止状态 05.死亡状态 进程的状态会随着操作系统的调度和外部事件的发生而不断地发生转换。例如&#xff0c;一个新创建的进程经过初始化后会进入就绪态&#xff0c;等待被调度执行&#xff1b;当调度器分配处理器资源给…

SpringBoot学习笔记一、SpringBoot应用初创建以及应用

一、创建SpringBoot的两种方式 1.Spring Initializr方式创建 &#xff08;1&#xff09;第一步在IDEA中选择 File-->NEW-->Project &#xff0c;选择 Spring Initializr &#xff0c;指定Maven坐标、包名、指定 JDK 版本 1.8 &#xff0c;然后点击Next 。如下图&#x…

亚信安慧AntDB解析:数据库技术的新里程碑

AntDB简化了开发运维&#xff0c;更提高了数据库的易用性。AntDB是一种创新的数据库管理系统&#xff0c;其设计理念旨在让用户能够更便捷地进行数据库操作&#xff0c;减少繁琐的配置和管理工作&#xff0c;提升工作效率。 通过AntDB&#xff0c;用户可以快速部署和管理数据库…

leetCode刷题 20. 有效的括号

目录 题目&#xff1a; 1. 思路 2. 解题方法 3. 复杂度 4. Code 题目&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型…

USART发送单字节数据原理及程序实现

硬件接线&#xff1a; 显示屏的SCA接在B11&#xff0c;SCL接在B10&#xff0c;串口的RX连接A9&#xff0c;TX连接A10。 新建Serial.c和Serial.h文件 在Serial.c文件中&#xff0c;实现初始化函数&#xff0c;等需要的函数&#xff0c;首先对串口进行初始化&#xff0c;只需要…