首页 > 其他分享 >质数问题

质数问题

时间:2023-12-09 22:24:48浏览次数:29  
标签:两个 int 互质数 质数 问题 素数 互质

质数常用性质

两个连续的自然数一定是互质数。如:4和5、13和14是互质数。

相邻的两个奇数一定是互质数。如:5和7、75和77是互质数。

两个数中的较大一个是质数,这两个数一定是互质数。如:3和19、16和97是互质数。

两个数中的较小一个是质数,而较大数是合数且不是较小数的倍数,这两个数一定是互质数。如:2和15、7和54是互质数。

较大数比较小数的2倍多1或少1,这两个数一定是互质数。如:13和27、13和25是互质数。

两个数分别除以它们的最大公约数,所得的商一定互质。

两个数的最小公倍数分别除以这两个数,所得的商一定互质。

两个互质的数a和b最小不能表示的数就是(a-1)(b-1)-1,也就是说两个互质的数a,b可以表示(a-1)(b-1)之后的所有数字。

中间是偶数的连续三个自然数互质。

6倍高效判断素数法

除了2和3外,其余素数都与6的倍数相邻,这些素数都满足6n±1。

这是个trivial的素数分布特征,因模6的余数中只有1和5与6互素,故从5开始的素数必与6的倍数相邻。

//从5开始,如果能整除6n+-1,肯定是合数
bool isprime(int num){
    if(num==2||num==3){return true;}
    if(num%6!=1&&num%6!=5){return false;}
    int len=(int)sqrt(num);
    for(int i=5;i<=len;i+=6){
        if(num%i==0||num%(i+2)==0)
            return false;
    }
    return true;
}

区间[1,n]埃式筛法

时间复杂度:O(nlogn)

[证明]

调和级数

vector<int> get_primes(int n) {
	vector<int> res(n + 1, 1);
	res[0] = res[1] = 0;
	int len = sqrt(n);
	for (int i = 2; i <= len; i++) {
		if (res[i]) {
			for (int j = i * i; j <= n; j += i) {
				res[j] = 0;
			}
		}
		return res;
	}

区间[1,n]线性筛

时间复杂度:O(n)

//return:范围[1,n]的素数个数
const int N=1e8+10;
int pr[N],cnt;
bool vis[N];
int init(int n){
    int res=0;
	for(int i = 2; i<=n; i++){
		if(!vis[i]) pr[cnt++] = i,res++;
		for(int j = 0; j <cnt&&(1ll)*pr[j]*i<=n; j++){
			vis[pr[j] * i] = true;
			if(i % pr[j] == 0) break;//确保每个数被自己的最小质数筛掉
		}
	}
    return res;
}

区间[l,r]质数判断

const int N=50010;
int l,r,cnt;
int pr[N],ispr[N];
void init(){
    ispr[1]=1;
    for(int i=2;i<N;i++){
        if(!ispr[i]){
            pr[++cnt]=i;
        }
        for(int j=1;j<=cnt&&i*pr[j]<N;j++){
            ispr[i*pr[j]]=1;
            if(i%pr[j]==0) break;//确保每个数被自己的最小质数筛掉
        }
    }
}
int ans[1000010],res=0;
void solve(){
    cin>>l>>r;
    init();
    for(int i=1;i<cnt&&pr[i]<=r;i++){
        for(ll j=max(2,(l+pr[i]-1)/pr[i]);j*pr[i]<=(ll)r;j++){
            ans[j*pr[i]-l]=1;
        }
    }
    if(l<=1) ans[1-l]=1;
    for(int i=0;i<=r-l;i++){
        if(!ans[i]) res++;
    }
    cout<<res;
}


标签:两个,int,互质数,质数,问题,素数,互质
From: https://www.cnblogs.com/taotao123456/p/17891902.html

相关文章

  • 解决Swagger UI 中文乱码问题
    ......
  • 常见问题解决 --- pip SSLEOFError
    问题C:\Users\Administrator\Desktop>pipinstallscapy-ihttp://pypi.douban.com/simple--trusted-hostpypi.douban.comLookinginindexes:http://pypi.douban.com/simpleWARNING:Retrying(Retry(total=4,connect=None,read=None,redirect=None,status=None......
  • Anaconda/conda环境配置的问题
    0前言安装Anaconda的时候,由于某种原因(我不清楚),官方推荐是手动添加环境变量的。不管怎么样,反正我安装完成之后,使用conda--version的时候报错了,报错如下:#>>>>>>>>>>>>>>>>>>>>>>ERRORREPORT<<<<<<<<<<<<<<&......
  • vue项目构建过于慢的问题
    因为vueinit使用的是npm源,是国外的注意:如果命令行运行不了npm命令或vue命令(就是提示命令不存在,则需要以管理员身份运行cmd)1、检查npm源,如果不是taobao的源,则需要切换//查看源,可以看到设置过的所有的源npmconfiggetregistry2、设置npm源//设置淘宝源npmconfig......
  • 第四讲 数学知识——质数
    AcWing866.试除法判定质数时间复杂度\(O(T\sqrta)\)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;boolisprime(intx){if(x<2)returnfalse;for(inti=2;i<=x/i;++i){if(x......
  • 谈谈企业级 Web 应用的前端消息展示的定制化问题
    笔者在社区上已经发布了一些技术文章,记录了自己工作于企业级前端应用几年以来积累的一些项目经验和教训。之前的文章关于企业级Web应用搜索引擎优化SearchEngineOptimization的一些工作经验分享已经提到,所谓企业级前端应用,是指为大型企业或组织开发的前端应用,这些应用具有......
  • is not eligible for getting processed by all BeanPostProcessors 问题解决
    问题在做Springboot项目时遇到如下报错18.684INFOo.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker:350restartedMainBean'org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration'oftype[org.apache.rocket......
  • 平安银行财务管理问题研究——论文文档
    利率市场化的深入推进过程中,银行所承受的财务管理压力也在不断加大,尽管我国经济保持着正常、稳定的发展,但是银行业的整体经营状况仍然令人担忧,其经营净利润的增长率明显放缓,而且所面临的风险和挑战也越来越多。平安银行一直致力于推动农业和农村经济的发展,但随着市场竞争的加剧和盈......
  • 记一次docker buildx build 推送到本地私有仓库出现 connection refused 的问题
    想在本地编译多个架构的基础镜像,这样后续有其他业务使用的时候,不必从头开始编译。使用传统的dockerbuild-tImageName:tag方式,只能编译和主机相同架构的镜像。而dockerbuildxbuild不支持将编译好的镜像放置在本地docker中,只能以文件的形式放在本地。因此需要在本地搭建......
  • NET8在CentOS7下无法执行的问题
    以二进制模式在CentOS7安装后,运行NET8报错误:#dotnet--list-sdksFailedtoload/usr/share/dotnet/host/fxr/8.0.0/libhostfxr.so,error:/lib64/libstdc++.so.6:version`GLIBCXX_3.4.20'notfound(requiredby/usr/share/dotnet/host/fxr/8.0.0/libhostfxr.so)Theli......