当前位置: 首页 > news >正文

C++质数的那些事(判断指数、区间筛质数、互质等等)

质数的定义:若一个正整数除了1和它自身之外不能被任何自然数整除,则该数称为质数,也叫素数。否则为合数

质数的性质:质数的分布较为稀疏,对于一个足够大的数S,不超过S的质数大约有\frac{N}{InN}个,也就是说每InN个数约有一个质数,

一、判断一个整数是否是指数

代码:

#include<iostream>using namespace std;//判断传入整数是否为质数的自定义函数
bool isprime(int num)
{//特殊质数2单独判断if(num==2)return true;//偶数与特殊的数进行过滤if(num%2==0 || num<2)return false;else{for(int i=3;i*i<=num;i+=2){if(num%i==0){return false;}}return true;}
}
int main()
{int x;cin>>x;//自定义函数isprime(x)//整数x是质数返回true//整数x不是质数返回falseif(isprime(x)){cout<<"Yes";}else{cout<<"No";}return 0;
}

二、筛出给定区间的质数

代码(欧拉筛(线性筛)):

#include<iostream>
#include<cstring>const int N=1e4+10;using namespace std;bool ss[N];int main()
{//筛选出[0,n]区间的素数; int n;cin>>n;int pr[N];int cnt=0;//先初始化所有数都是素数 memset(ss,true,sizeof(ss));//排除0,1; ss[0]=ss[1]=false;for(int i=2;i<n;i++) {//选出素数if(ss[i]) pr[cnt++] = i;    for(int j=0;j<cnt&&pr[j]*i<=n;j++){//筛出非素数ss[pr[j]*i]=false;      //重复筛选,跳出循环if(i%pr[j]==0) break; }}for(int i=0;i<=n;i++) if(ss[i]) cout<<i<<" "; return 0;
} 

三、判断两个整数是否互质

代码:

#include<iostream>
#include<cstring>const int N=1e4+10;using namespace std;bool ss[N];int gcd(int a,int b)
{return b ? gcd(b, a % b) : a;
}bool coprime(int a, int b) 
{return gcd(a, b) == 1;
}int main()
{int x,y;cin>>x>>y;if(coprime(x,y))cout<<"Yes"<<endl;elsecout<<"No"<<endl;return 0;
}

代码会随个人学习进行持续更新,谢谢您的观看!

相关文章:

  • Linux-文件或目录权限
  • Vue 2 和 Vue 3 中同步和异步
  • Web Server项目实战3-Web服务器简介及HTTP协议
  • GPT‑4o普通账户也可以免费用
  • java中的Map集合
  • 单向无头链表实现
  • 基于transformers框架实践Bert系列4-文本相似度
  • 反射获取或修改对象属性的值
  • SSH反向代理是什麼?有什麼用?
  • 【kubernetes】多 master 高可用集群架构部署
  • 推荐模型IMSR 复现 (有bug 吧基本不下降)
  • IT行业现状与未来趋势
  • 类与对象:抽象类、Object类和内部类
  • 数据库多表查询概述——三种实现方式
  • 【学习笔记】关于建模时需要调整的变量
  • SegmentFault for Android 3.0 发布
  • 【347天】每日项目总结系列085(2018.01.18)
  • Android Volley源码解析
  • ComponentOne 2017 V2版本正式发布
  • co模块的前端实现
  • ES6系列(二)变量的解构赋值
  • GraphQL学习过程应该是这样的
  • Vim 折腾记
  • 搭建gitbook 和 访问权限认证
  • 基于web的全景—— Pannellum小试
  • 使用 Docker 部署 Spring Boot项目
  • 责任链模式的两种实现
  • 昨天1024程序员节,我故意写了个死循环~
  • ​queue --- 一个同步的队列类​
  • ​插件化DPI在商用WIFI中的价值
  • "无招胜有招"nbsp;史上最全的互…
  • #### go map 底层结构 ####
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (论文阅读11/100)Fast R-CNN
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (轉貼) UML中文FAQ (OO) (UML)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET C# 使用GDAL读取FileGDB要素类
  • .Net FrameWork总结
  • .Net Memory Profiler的使用举例
  • .net mvc 获取url中controller和action
  • .net解析传过来的xml_DOM4J解析XML文件
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @GlobalLock注解作用与原理解析
  • [ NOI 2001 ] 食物链
  • [20150707]外部表与rowid.txt
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像