小题目 求素数
2013-10-31 11:23
183 查看
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
——摘自百度百科
也就是说素数n只能被1和自身整除,那么是不是可以用n对从2到n-1进行取模, 判断其是不是等于0, 如果等于0了 那说明n是合数(可以被除1和自身的数整除嘛)
这样就可以判断是不是为素数了
接下来我们可以优化一下
据说在数学上证明 不用再从2到n-1进行取模判断 只要从2到n的算术平方根下取整进行判断就好 也就是说如果判断到这里n的模都不为0 那么这个数一定是素数
PS 这里先用一个整数来存储n的算术平方根下取整 这样可以节省时间 如果直接作为循环条件 则会浪费
注意!!!重点来了
其实我是想写 在写题目的时候一定一定一定一定要认真审题
有一个题目让你判断素数 给你一个n 代表测试数据个数 10w+
接下来每个数据都是int型的
这个时候你妹的就不能写筛选了(这题他就是卡筛选法的)
然后直接用普通的方法就轻松ac了~
——摘自百度百科
也就是说素数n只能被1和自身整除,那么是不是可以用n对从2到n-1进行取模, 判断其是不是等于0, 如果等于0了 那说明n是合数(可以被除1和自身的数整除嘛)
这样就可以判断是不是为素数了
接下来我们可以优化一下
据说在数学上证明 不用再从2到n-1进行取模判断 只要从2到n的算术平方根下取整进行判断就好 也就是说如果判断到这里n的模都不为0 那么这个数一定是素数
PS 这里先用一个整数来存储n的算术平方根下取整 这样可以节省时间 如果直接作为循环条件 则会浪费
注意!!!重点来了
其实我是想写 在写题目的时候一定一定一定一定要认真审题
有一个题目让你判断素数 给你一个n 代表测试数据个数 10w+
接下来每个数据都是int型的
这个时候你妹的就不能写筛选了(这题他就是卡筛选法的)
然后直接用普通的方法就轻松ac了~
相关文章推荐
- 动易2006序列号破解算法公布
- C#数据结构与算法揭秘二
- 浅析STL中的常用算法
- JavaScript 组件之旅(二)编码实现和算法
- 将15位身份证补全为18位身份证的算法示例详解
- C++算法系列之日历生成的算法代码
- 简单的四则运算
- 数的奇偶性
- 1 2 3 4 5 6 7 8 9 = 110的java实现
- Sedgewick之巨著《算法》,与高德纳TAOCP一脉相承
- 【代码】Pythonの代码片段
- STL中算法
- 数据结构&算法学习
- 算法的时间复杂度
- 算法导论:选择排序的原理与实现
- PHP实现四种常用的排序算法
- 图解插入排序算法
- 一些常见算法的JavaScript实现
- 平方根sqrt()函数的底层算法效率
- 二叉搜索树的一些相关算法介绍