要求任意给出一个正整数  
输出所有小于它的素数   请高手指点给一个比较好的算法

解决方案 »

  1.   

    筛选法,google关键字 sieve prime java
      

  2.   

    //prime numberimport java.util.ArrayList;public class PrimeNumber
    {
    static ArrayList primeList = new ArrayList() ;
    static int number = 100 ;

    public static void main(String[] args)
    {
    for(int index = 2;index < number; index++)
    {
    if(primeList.size() == 0)
    primeList.add(Integer.valueOf(index));
    else
    {
    boolean isPrime = true ;
    for(int i = 0;i < primeList.size();i++)
    {
    int temp;
    temp = ((Integer)primeList.get(i)).intValue();
    if(index % temp == 0)
    {
    isPrime = false;
    break;
    }
    }
    if(isPrime)
    {
    primeList.add(Integer.valueOf(index));
    }
    }
    }
    System.out.println(primeList.toString());
    System.out.println("一共有素数:" + primeList.size());
    }
    }
    不知道可以不