- 2025-01-18欧拉筛(线性筛)找素数(质数) - Java实现
欧拉筛(线性筛)找素数(质数)-Java实现importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.util.LinkedList;publicclassMain{staticintn=0;staticboolean[]notP
- 2025-01-18[每日 C] No Prime Differences
思路首先转化题意构造转化个蛋你发现\(n,m\)只要有一个不是质数,构造就是简单的考虑\(n,m\)都是质数的情况:你可以如下构造\[\begin{bmatrix}1&2&3&\cdots&m-1&m\\m+2&m+3&m+4&\cdots&m&m+1\\2m+3&2m+4&
- 2025-01-18数学知识(一)--质数、约数、欧拉函数、快速幂、扩展欧几里得、高斯消元
目录一、质数1.试除法判断质数2.试除法分解质因数3.筛选法找质数(1)朴素筛法--埃氏筛(2)线性筛法二、约数 1.试除法求约数2.约数个数问题 3.约数之和问题4.欧几里得算法(辗转相除法)三、欧拉函数1.公式法求欧拉函数2.线性筛法求欧拉函数 3.欧拉定理和费马
- 2025-01-15筛法
杜教筛你现在需要求一个函数\(f(n)\)的前缀和\(F(n)=\sum_{i=1}^nf(i)\),然后经过一些机缘巧合,你发现这个\(f(n)\)有以下性质:存在一个积性函数\(g(n)\),可以快速计算其前缀和\(G(n)=\sum_{i=1}^ng(i)\)。数论函数\(f\)和\(g\)的狄利克雷卷积\(h=f*g\)的前缀和
- 2025-01-1501.求200万以内的质数
一、题目思路1、设两个整数a和b,如果不是质数的话,整数x就可以写成x=a*b比如:36=2*1836=4*936=6*6 如果整数x为质数,就不可能写成x =a*b的形式,即如果不为质数,其中一个可整除的因数一定满足小于等于根号x,缩短遍历判断范围,即判断到根号x是
- 2025-01-11Text1-综合练习3
Text-综合练习3判断一个数是否为质数质数为只能被1和本身整除的数Scannertext=newScanner(System.in);System.out.println("请输入要进行质数判断的数:");intz=text.nextInt();booleanflag=true;//开始认为这个数是质数for(inti=2;i
- 2025-01-08[CF2039G] Shohag Loves Pebae 做题记录
link高级筛法题。每条路径的条件是很难求的,考虑将其转化。发现对于一条路径,点数为\(c=a\cdotb\),那么其条件是无用的:考虑其包含的所有点数为\(a\)的路径,需要满足这\(c\)个点的权值乘积不被\(a\)整除。进一步的,只有点数为质数的路径条件才有用。对于每个点\(i\),求出
- 2025-01-08应用质数和模算法
生成RSA加密密钥密钥生成时先选择两个素数p和q,计算他们的乘积n=p*q,RSA的安全性是基于从n推导出p和q是很困难的,p和q越大,在给定n推到p和q的值越难,简单逻辑如下:1、选择两个大的素数2、计算n和phi(欧拉商函数)3、选择一个公共指数e4、计算私有指数d5、使用公钥加密信息6、使用私
- 2025-01-04素数入门笔记
试除法从\(2\)枚举到\(\lfloor\sqrtn\rfloor\)判断能否整除。朴素筛法从小到大枚举每个数,将范围内它的倍数全部标记为合数。时间复杂度显然就是调和级数\(O(n\logn)\)。埃氏筛观察到一个合数必定可以通过某个质数乘上某个数得到。从小到大枚举每个质数,将范围内它的
- 2025-01-04LeetCode 762[二进制表示中质数个计算置位]
题目链接LeetCode762[二进制表示中质数个计算置位]详情实例提示题解思路两个条件:1、二进制位为12、满足条件1的个数为质数 首先for循环遍历区间for(inti=left;i<right+1;i++){intiCount=0;//二进制位为1的个数
- 2025-01-03ARC080F
题目大意:有无限枚硬币,其中有\(N\)枚硬币\(x_{1\ldotsN}\)初始时正面朝上,其余均为背面朝上,每次可以选择一段区间\([l,r]\),将区间内所有硬币翻转,其中\(r-l+1\)为一个奇数质数;问最少多少次能将所有硬币全部翻为背面朝上。$1\<\=\N\<\=\100$$1\<\=\x_1\<\x_2\<\.
- 2025-01-02数论基础B
数论基础B试除法判定质数暴力做法:枚举\(2\)~\(n-1\)的所有数,判断能否将\(n\)整除,如果存在一个数能把\(n\)整数,说明\(n\)不是质数实际上只需要枚举到\(\sqrt{n}\)即可,如果\(a\)是\(n\)的约数,那么\(\frac{n}{a}\)也是\(n\)的约数,我们只需要检验\(min(a,\fr
- 2025-01-01筛素数 题目
题解暂无,求指导试题描述给定一个范围N,你需要处理M个数字是否为质数的询问(每个数字均不超过N)输入要求第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含不大于N的非负整数,即询问该数是否为质数。输出要求输出包含M行,每行为Yes或No,即依次为每一个
- 2025-01-01GESP2024年6月认证C++五级( 第三部分编程题(2))
参考程序(线性筛法)#include<iostream>#include<vector>usingnamespacestd;constintMAXN=10000001;//最大数字范围//保存每个数的质因子数量vector<int>primeFactors(MAXN,0);voidlinearSieve(){//从2开始筛选for(inti=2;i<MAXN;
- 2024-12-31【C++】B2085 第 n 小的质数
博客主页:[小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏:C++文章目录
- 2024-12-25java~重写hashcode时为什么要乘以31
在Java中,重写hashCode()方法时常常会使用31作为乘数,这是因为31具有一些独特的数学性质,使其成为一个优秀的选择。以下是几个原因:1.奇质数的特性31是一个奇数和质数,这意味着它能有效地减少哈希冲突的概率。使用质数作为乘数可以帮助分散哈希值,从而提高哈希表的性能。2.位运算效
- 2024-12-25Problem about GCD
思路首先容易发现题目相当于让你找到一个互质数对\((a,b)\)使得\(l\leqa\cdotG\leqb\cdotG\leqr\),求\(b-a\)最大化然后你发现区间缩小量并不大,简单的,问题可以视作在一个\(10^{18}\)的区间里找互质数对很快你发现,如果从左到右扫\(a\),从右到左扫
- 2024-12-24Diary - 2024.12.24
今天摆完了有点。待补:Solution-LuoguP11398众数Solution-LuoguP11401[Code+#8初赛]普勒亚Solution-Codeforces2041KTrophicBalanceSpeciesLuoguP11408[RMI2020]树咖/Arboras代码想想LuoguP11417[Sloi2024]D1T1精卫的线性(?),而且还有代码整理一
- 2024-12-24[学习笔记] 线性筛与欧拉函数
一线性筛主要讲下思想,埃氏筛法就是用所有质数标记所有倍数,这样的时间复杂度是\(O(n\logn\logn)\),有两只\(\log\)。可是我不想要\(\log\),于是欧拉筛:改进:存下质数表。对于每一个数,只标记自己与不超过自己最小质因子的数的乘积,对于质数表\(2,3,5\),循环到\(i=6\)时,只筛去\(
- 2024-12-21P8795 [蓝桥杯 2022 国 A] 选素数
题目描述:小蓝有一个数 x,每次操作小蓝会选择一个小于 x 的素数 p,然后在 x 成为 p 的倍数前不断将 x 加 1,(如果 x 一开始就是 p 的倍数则 x 不变)。小乔看到了小蓝进行了 2 次上述操作后得到的结果 n,他想知道 x 在一开始是多少。如果有多种可能,他想知道 x
- 2024-12-1912.19 CW 模拟赛 T2. 数
思路赛时读错题了,虽然说读对了不一定能做出来,但是还是比较可惜首先阐述一下题意,对\(S\)数组进行插入和删除操作,每次询问让你用\(T\)中的质数组合出\(x\),然后将\(S\)中的数乘以\(x\)之后求最多的完全立方数个数那么显然的,我们对于每一个数,都可以拆成质
- 2024-12-19USACO备考冲刺必刷题 | P1218 Superprime Rib
学习C++从娃娃抓起!记录下USACO(美国信息学奥赛)备考学习过程中的题目,记录每一个瞬间。附上汇总贴:USACO备考冲刺必刷题|汇总-CSDN博客【题目描述】农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方
- 2024-12-15蓝桥 小白入门赛24
https://www.lanqiao.cn/oj-contest/newbie-24/1. 分配辣条签到题。#include<iostream>usingnamespacestd;intmain(){cout<<20250601/305*305;return0;}ViewCode2. 决出国特题意为求出最小的不能被前n个质数整除的数。根据埃氏筛的思想,前n个质数会将第
- 2024-12-14leetcode 866. 回文质数
866.回文质数想着开大数组,用质数筛选的方法。但是开大数组超内存了
- 2024-12-146个200以内的等差质数
目录题目描述算法思路代码实现后记无注释满分代码代码如下:题目描述需要找到6个200一内的等差质数,没有输入,直接输出找到的这6个等差质数。算法思路1.此题没有输入数据,直接输出。2.了解等差数。等差数列是指从第二项起,每一项与它的前一项的差等于同一个常数的