当前位置: 代码迷 >> Java相关 >> java编程急求!解决思路
  详细解决方案

java编程急求!解决思路

热度:4103   发布时间:2013-02-25 21:50:25.0
java编程急求!!
在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 + ", ");        }    }}
  相关解决方案