| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 用数学解释判断一个数是不是质数,为什么只需遍历上限是算数平方根的范围 -> 正文阅读 |
|
[C++知识库]用数学解释判断一个数是不是质数,为什么只需遍历上限是算数平方根的范围 |
质数定义一个大于1的自然数 “质数又被称为素数,是指一个大于1的自然数,除了1和它自身外,不能被其它自然数整除。 反比例函数比如我们需要判断数m(m>1)是不是质数。 对于我们来说m就是一个定值,需要找出所有两个数相乘为m的所有可能,我们设其中一个因数为x,另一个因数为y,因此x,y满足xy=m变换为y = m/x。 y = m/x函数形式不错就是我们数学中所学的反比例函数,好的我们画出此函数。 ? 我们只需从该函数中找出x,y相乘,积为m的二元有序对(x,y)即可。 那和算数平方根由什么关系呢? 我们根据数学知识可知,y = m/x(m>1)反比例函数是关于y=x对称,因此我们画出y=x。 ? ? 根据y=m/x,y=x我们可以求出交点(√m,√m), 关于y=m/x反比例函数关于y=x对称,在y=m/x上的任意一点(x0,y0),关于y=x的对成点为(y0,x0),两点(x0,y0),(y0,x0)分别在(√m,√m)的左右,又因为x0*y0=y0*x0=m,也就是说我们在交点(√m,√m)左边找到的(x0,y0)满足x0*y0=m,也能在(√m,√m)右边找到与之唯一对应的点(y0,x0)满足y0*x0=m。 判断质数不考虑两个因数的顺序问题,所以根据以上描述我们只需在x<=√m的范围判断是否存在(x,y)满足 x,y是正整数,并且x,y≠1的二元有序对,如果不存在则为质数,否则为合数。 代码
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:32:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |