在main函数中调用函数fun(int[] a, int m),(其中m是在main中用键盘输入的小于100的整数),用fun函数找出大于整数m,并且邻接m的5个素数,将这5个素数,用a数组接收,并在main中输出;(请根据题目完成main和fun函数的编写)
------解决方案--------------------------------------------------------
- Java code
//剩下自己写 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 + ", "); } }
------解决方案--------------------------------------------------------
- Java code
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 + ", "); } }}