笔试题目当中,找素数出现的几率有点大。昨天就做了一个,感觉不是很难,但可以考查程序员的数学和编码功底。

用嵌套循环来实现是很理想的,怎样减少循环的次数?怎样求出小于N的所有质数?

不可能将一个数除与所有小于它的数字,只要检查到N的平方根就好了。但直接开根号还有个精度的问题。这个可能会产生误差。

索性将判断条件写成 i*i<=N ,道理也是很简单的 i 大于N 的平方根,在检查 第一个 i 除数 N 之前可以先检查 小于第二个 i 是否可以 整除 N。

下面自己敲的求素数:

import java.util.ArrayList;

public class Prime {

    public static int[] findPrime(final int max) {
int[] prime = new int[max + 1];
ArrayList list = new ArrayList(); // 两个嵌套循环 ,赋值不是质数
for (int j = 2; j * j <= max; j++) {
for (int k = 2*j; k <= max; k++) {
if (k % j == 0) {
//不是质数 数组对应赋值为1
prime[k] = 1;
}
}
}
for (int i = 2; i < max; i++) {
//因为JAVA数组默认赋值为整数“0”,所以所有是质数的经过上面的嵌套循环数组所对应的值是没有发生的
if (prime[i] == 0) {
list.add(new Integer(i));
}
}
//将list 转换为数组返回
int[] p = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
p[i] = (Integer) list.get(i);
}
return p; } public static void main(String[] args) {
int[] prime = Prime.findPrime(1000);
for (int i = 0; i < prime.length; i++) {
System.out.print(prime[i] + " ");
}
} }

找小于N 的所有质数的更多相关文章

  1. 求最大公约数和小于n的所有质数

    //algorithm.h enum SWAP_TYPE{MEMORY, COMPLEX}; struct SIntArray { int *pData; int num; SIntArray():p ...

  2. 统计所有小于非负整数 n 的质数的数量,埃拉托斯特尼筛法

    素数的定义:质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数. 1.暴力算法: 令i=2; 当i<n的时候,我们循环找出2-i的质数,即让i%(2~i-1), ...

  3. 代码题(2)— 统计所有小于非负整数 n 的质数的数量

    质数也叫素数,只能被1和它本身整除的. 利用筛选法. class Solution { public: int countPrimes(int n) { ) ; ; vector<); ;i&l ...

  4. 利用for循环找出1000以内的质数

    var n=0; for(var i=2;i<=1000;i++){  var zhishu=true;  for(var j=2;j<i;j++){    if(i%j==0){    ...

  5. js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。

    存档. 找出能被两个给定参数和它们之间的连续数字整除的最小公倍数. function smallestCommons(arr) { //分解质因数法,分解为若干个质数相乘 var arrratio=[ ...

  6. Eratosthenes筛选法求解质数

    问题说明: 除了自身之外,无法被其它整数整除的数称之为质数,要求质数很简单,但如何快速的求出质数则一直是程式设计人员与数学家努力的课题, 在这边介绍一个着名的 Eratosthenes求质数方法. 解 ...

  7. [经典算法] Eratosthenes筛选求质数

    题目说明: 除了自身之外,无法被其它整数整除的数称之为质数,要求质数很简单,但如何快速的求出质数则一直是程式设计人员与数学家努力的课题,在这边介绍一个著名的 Eratosthenes求质数方法. 题目 ...

  8. 以Python列表特性为切入点的求质数列表的方法

    一般,构造一个含有2-x之间所有质数的列表,我们采用最简单的遍历判断质数的方法: # 方法一 1 prime = [] def is_prime(n): if n <= 1: return Fa ...

  9. [Swift]LeetCode204. 计数质数 | Count Primes

    Count the number of prime numbers less than a non-negative number, n. Example: Input: 10 Output: 4 E ...

随机推荐

  1. php读取不到https的域名

    因测试环境php遇到无法正常读取到https的域名,但是域名配置了ssl证书,故做如下排查. php测试代码如下 $config['base_url'] = ''; #开启调试模式 #echo &qu ...

  2. http客户端与浏览器的区别

    两者区别:浏览器对http响应头会进行特定处理(如自动读取本地缓存.设置cookie等),而http客户端(如crul)可能没有像浏览器那样的处理,某些封装程度高的http客户端,可能会有. 同一个文 ...

  3. 文件处理seek以及修改内容的两种方式

    f.seek(offset,whence)offset代表文件的指针的偏移量,单位是字节byteswhence代表参考物,有三个取值# 0:参照文件的开头# 1:参照当前文件指针所在位置# 2: 参照 ...

  4. Jack Straws POJ - 1127 (几何计算)

    Jack Straws Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5428   Accepted: 2461 Descr ...

  5. 为工程添加上下文菜单(ContextMenu)

    上下文菜单大多数情况下都是为ListView中的Item添加的,长按2S左右跳出菜单,添加上下文菜单必须重写活动中的onCreateContextMenu()方法和onContextItemSelec ...

  6. Splay的用法

    splay区间增减查询 #include<cstdio> #include<algorithm> using namespace std; ; const int INF = ...

  7. 前端 五——ajax

    内容概要: 1.ajax的特点 2.基于JS的ajax 3.基于jQuery的ajax 1.特点: 局部刷新 异步传送(交互) 缺点: (1)无形中向服务器发送的请求次数太多,导致服务器压力增大. ( ...

  8. 了解CSS核心精髓(一)

    CSS 1.css外联 正确写法:<link rel="stylesheet" href="css/style.css" /> <style ...

  9. JS使用onerror进行默认图像显示,可代替alt

    JS代码 //图像加载出错时的处理 function errorImg(img) { img.src = "默认图片.jpg"; img.onerror = null; } HTM ...

  10. [python IO学习篇]补充打开中文路径的文件

    http://blog.csdn.net/mottolinux/article/details/525600621 关于Python编码的基本常识 在python里面 “明文”是unicode类型和s ...