日期:2014-05-20 浏览次数:21097 次
//剩下自己写
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 + ", "); } } }