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

devtools/2024/12/22 13:11:22/

质数的定义:若一个正整数除了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;
}

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


http://www.ppmy.cn/devtools/42306.html

相关文章

利用远控工具横向

一.横向移动介绍和方式 1.介绍 内网渗透的横向移动是指攻击者在成功进入内网后&#xff0c;通过利用内部系统的漏洞或者获取的合法访问权限&#xff0c;从一个受感染的系统向其他系统扩散或移动。这种横向移动的目的通常是为了获取更多的敏感信息、提升权限、扩大攻击面或者更…

代码随想录算法训练营第36期DAY32

DAY32 回溯算法总结 同一树层去重的两种方法&#xff1a;90子集ii class Solution {private: vector<vector<int>> result; vector<int> path; void backtracking(vector<int>& nums, int startIndex, vector<bool>& used) { result.p…

day08-Java常用API

day08——Java常用API 一、今日内容介绍、API概述 各位同学&#xff0c;我们前面已经学习了面向对象编程&#xff0c;使用面向编程这个套路&#xff0c;我们需要自己写类&#xff0c;然后创建对象来解决问题。但是在以后的实际开发中&#xff0c;更多的时候&#xff0c;我们是…

职业生涯第二课---“前人埋雷,后人踩坑“

前言 在这段半个月的实习生涯中&#xff0c;前几天主动优化自己写的代码&#xff0c;还学到了分布式事物锁&#xff0c;有点沾沾自喜。没想到没过几天就踩到了前人埋下的雷。 正文 事情是这样的&#xff0c;我接手了上个实习生的工作&#xff0c;对原有的程序做扩展多写几个…

【python】zip()函数介绍

一、说明 zip 是 Python 中一个非常实用的内置函数&#xff0c;用于将可迭代的对象&#xff08;如列表、元组、字典等&#xff09;作为参数&#xff0c;将对象中对应的元素打包成一个个元组&#xff0c;然后返回由这些元组组成的对象&#xff08;注意&#xff0c;返回的其实是…

ftp是什么,ftp能做什么,ftp有什么用 -----在Windows搭建ftp服务器

大家好&#xff0c;我是风屿&#xff0c;今天教大家如何从零开始搭建一台属于自己的ftp&#xff0c;本期教大家搭建Windows客户端的&#xff0c;后面是linux的 首先第一步要有一台联网的Windows电脑 1打开控制面板&#xff0c;找到程序&#xff0c;点击打开或关闭Windows功能…

【Qt】之【Bug】C2001 常量中有换行符

分析 参考&#xff1a;Qt记录&#xff1a;Qt编程遇C2001错误&#xff0c;提示“常量中有换行符”_qt 常量中有换行符-CSDN博客 原因 字符串中有中文字符 &#xff1a;使用了中文标点符号&#xff01; 解决 中文感叹号改为英文的

ECharts实现地图飞线

echarts版本&#xff1a;https://echarts.apache.org/zh/changelog.html v5.x.x版本&#xff1a;不提供china.js和china.json文件 v4.x.x版本&#xff1a;使用npm安装echarts&#xff0c;默认包含china.js和china.json文件 目录 一、Html工程 二、vue工程 三、vue工程 四、矢…