求素数
来源:互联网 发布:单片机类型 编辑:程序博客网 时间: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; }}