求素数

来源:互联网 发布:单片机类型 编辑:程序博客网 时间:2024/06/06 05:14
作为第一篇技术博客,先从简单的开始,记得以前上课最多的就是求素数,今天自己实现一下。
package com.tiange;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class App{    public static void main(String[] args)    {    int[] arr = prime(100);    System.out.println(Arrays.toString(arr));    }    public static int[] prime(int n)    {    // 校验    if (!validate(n))    return null;        List<Integer> list = new ArrayList<Integer>();    for (int x = 2; x <= n; x++)    {    boolean tag = false;    for (int i = 2; i <= Math.sqrt(x); i++)    {    if (x % i == 0)    {    tag = true;    break;    }    }    if (!tag)    {    list.add(x);    }    }    Integer[] array = list.toArray(new Integer[0]);    /**     * 1. 首先从Integer数组中获取一个Stream 流          * 2. 将流中的每一个元素拆箱;          * 3. 调用toArray将拆箱只有的流转换为数组     */    int[] arr = Arrays.stream(array).mapToInt(Integer::valueOf).toArray();    return arr;    }    // 数据校验    static public boolean validate(int n)    {    if (n < 3)    {    System.out.println("number out of bound! number n must bigger than 3!");    return false;    }    return true;    }}