【No.20】蓝桥杯简单数论下|寻找整数|素数的判断|笨小猴|最大最小公倍数|素数筛|埃氏筛|欧氏线性筛|质数|分解质因子(C++)

本文围绕蓝桥杯C++算法题展开,包含寻找整数、素数判断、笨小猴、最大最小公倍数等题目。介绍了寻找整数的模拟和LCM解法,素数判断的试除法和高级算法,还涉及素数筛、分解质因子等内容,通过多种思路和方法解决相关问题。
寻找整数

【题目描述】
有一个不超过101710^171017的正整数n,知道这个数除以2至49后的余数如下表所示,求这个正整数最小是多少
![[Pasted image 20240326202941.png]]

解法一:模拟

暴力法:一个个检验1…10171\dots 10^{17}11017的每个数
由于这个数n最大可能是101710^{17}1017,验证的时间太长

解法二:LCM

从表格的第一个数2开始,逐个增加后面的数,找满足条件的n

  1. 满足第一个条件,除以2余1的数有:3,5,7,9…此时步长k=2
  2. 继续满足第二个条件,除以3余2的数,只能从上一步骤的3,5,7,9…中找,有5,11,17…此时步长k=6
    为什么k=6
    因为LCM:k=(2, 3)=6

证明:
n1n_{1}n1n2n_{2}n2满足
n1=2a1+1=3b1+2n_{1}= 2a_{1}+1 = 3b_{1}+2n1=2a1+1=3b1+2
n2=2a2+1=3b2+2n_{2}=2a_{2}+1= 3b_{2}+2n2=2a2+1=3b2+2
n2n_{2}n2n1n_{1}n1的差k=n2−n1=2(a2−a1)=3(b2−b1)k=n_{2}-n_{1}=2(a_{2}-a_{1})=3(b_{2}-b_{1})k=n2n1</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值