日期:2014-05-20 浏览次数:20890 次
//剩下自己写 static void fun(Integer[] a, int m) { List<Integer> list = new ArrayList(1000); int max = 5; //得到 2 到 m 的素数 list.add(2); int i; for (i = 3; i <= m; i++) { boolean flag = true; for (Integer j : list) { if (i % j == 0) { flag = false; break; } } if (flag) { list.add(i); } } int len = list.size(); //再向后找五个素数 while (list.size() - len < max) { boolean flag = true; for (Integer j : list) { if (i % j == 0) { flag = false; break; } } if (flag) { list.add(i); } i++; } if (a != null && a.length > 4) { Integer[] b = list.subList(len, list.size()).toArray(a); System.arraycopy(b, 0, a, 0, b.length < max ? b.length : max); } } public static void main(String[] args) { Integer[] a = new Integer[5]; fun(a, 100); for (Integer i : a) { System.out.print(i + ", "); } }
------解决方案--------------------
package com.test; import java.io.File; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test { // 剩下自己写 static void fun(Integer[] a, int m) { List<Integer> list = new ArrayList(1000); int max = 5; // 得到 2 到 m 的素数 list.add(2); int i; for (i = 3; i <= m; i++) { boolean flag = true; for (Integer j : list) { if (i % j == 0) { flag = false; break; } } if (flag) { list.add(i); } } int len = list.size(); // 再向后找五个素数 while (list.size() - len < max) { boolean flag = true; for (Integer j : list) { if (i % j == 0) { flag = false; break; } } if (flag) { list.add(i); } i++; } if (a != null && a.length > 4) { Integer[] b = list.subList(len, list.size()).toArray(a); System.arraycopy(b, 0, a, 0, b.length < max ? b.length : max); } } public static void main(String[] args) { System.out.println("请再键盘输入小于100的数"); Scanner console = new Scanner(System.in);// 从键盘接收数据 int num = console.nextInt(); Integer[] a = new Integer[5]; fun(a, num); for (Integer i : a) { System.out.print(i + ", "); } } }