读书人

各位帮个忙吧看看这个题!该如何解决

发布时间: 2012-02-22 19:36:55 作者: rapoo

各位帮个忙吧,看看这个题!!
在main函数中调用函数fun(int[] a, int m),(其中m是在main中用键盘输入的小于100的整数),用fun函数找出大于整数m,并且邻接m的5个素数,将这5个素数,用a数组接收,并在main中输出;(请根据题目完成main和fun函数的编写)
这是我写的,可是得不到所要的结果
public static void fun(int[]a,int m)
{
int i;
int max=5;
for(i=2;i<=m;i++)
{
for(int j=0;j<a.length;j++)
{
if(i<Math.sqrt(m)&&(m%i!=0)) break;
if(i>Math.sqrt(m)) a[j]=m;
}
}
int b=a.length;
while(a.length-b<max){
for(int j=0;j<a.length;j++){
if(i%j==0){
break;
}
}i++;
}

}
public static void main (String[] args) {
System.out.println("please enter <100 numbers:");
Scanner bh=new Scanner(System.in);
int m=bh.nextInt();
int []a=new int[5];
fun(a,m);
for(int i=0;i<a.length;i++)
System.out.print(a[i]+",");
}

[解决办法]
你看这是不是你想要的效果?

Java code
import java.util.Scanner;/** * Created by IntelliJ IDEA. * User: Administrator * Date: 2011-9-29 * Time: 21:45:16 * To change this template use File | Settings | File Templates. */public class ShowNumber {    public static boolean isPrimeNumber(int num){        boolean result=true;        if(num==2)            return true;        for(int i=2;i<=num/2;i++){            if(num%i==0){//                result=false;                return false;            }        }        return result;    }    public static void fun(int[]a,int m)    {//        int i;        int max=5;        if(a==null){            a=new int[5];        }        int primeNum=0;        for(int i=m+1;primeNum<5;i++){              if(isPrimeNumber(i)){                   a[primeNum]=i;                  primeNum++;              }        }    }    public static void main (String[] args) {        System.out.println("please enter <100 numbers:");        Scanner bh=new Scanner(System.in);        int m=bh.nextInt();        int []a=new int[5];        fun(a,m);        for(int i=0;i<a.length;i++)            System.out.print(a[i]+",");    }} 

读书人网 >Java相关

热点推荐