当前位置: 主页 > JAVA语言

java素数环-12的素数环

发布时间:2023-03-23 22:14   浏览次数:次   作者:佚名

import dataStructure.linearList.SeqList;                   //顺序表
import dataStructure.linearList.SeqQueue;                  //顺序队列类
import dataStructure.linearList.linkedQueue;               //链式队列类

public class PrimeRing 
{
    public PrimeRing(int n) 
    {
        SeqList ring = new SeqList(n);   //创建一个顺序表存储素数环
        ring.add(new Integer(1));                          //1添加到素数环中

//        SeqQueue q = new SeqQueue(n);   //创建一个队列q
        linkedQueue q = new linkedQueue();   //创建一个队列q
        for (int i=2; i<=n; i++)                              //2~n全部入队
            q.enqueue(new Integer(i));
        System.out.println(q.toString());
 
        int i=0;
        while (!q.isEmpty()) 
        {
            int k = q.dequeue().intValue();                //出队
            System.out.print(“dequeue: “+k+“\t“);
            if (isPrime(ring.get(i)+k))                     //判断是否为素数
            {
                i++;
                ring.add(new Integer(k));                  //k添加到素数环中
            }
            else
                q.enqueue(new Integer(k));                 //k再次入队
            System.out.println(“队列: “+q.toString());
        }
        System.out.println(“素数环: “+ring.toString());
    }
    
    public boolean isPrime(int k)                          //判断k是否为素数
    {
        if (k==2)
            return true;

        if (k<2 || k>2 && k%2==0)
            return false;

        int j=(int)Math.sqrt(k);                       //Math.sqrt(k)返回k的平方根值
        if (j%2==0)
            j--;                                       //获得测试范围内的最大奇数
        while (j>2 && k%j!=0)
            j-=2;
        return j<2;
    }
    public static void main(String args[])
    {
         new PrimeRing(10);
    }
}

/*
 {2 3 4 5 6 7 8 9 10} 
dequeue: 2  队列:  {3 4 5 6 7 8 9 10} 
dequeue: 3  队列:  {4 5 6 7 8 9 10} 
dequeue: 4  队列:  {5 6 7 8 9 10} 
dequeue: 5  队列:  {6 7 8 9 10 5} 
dequeue: 6  队列:  {7 8 9 10 5 6} 
dequeue: 7  队列:  {8 9 10 5 6} 
dequeue: 8  队列:  {9 10 5 6 8} 
dequeue: 9  队列:  {10 5 6 8 9} 
dequeue: 10 队列:  {5 6 8 9} 
dequeue: 5  队列:  {6 8 9 5} 
dequeue: 6  队列:  {8 9 5 6} 
dequeue: 8  队列:  {9 5 6 8} 
dequeue: 9  队列:  {5 6 8} 
dequeue: 5  队列:  {6 8 5} 
dequeue: 6  队列:  {8 5 6} 
dequeue: 8  队列:  {5 6} 
dequeue: 5  队列:  {6} 
dequeue: 6  队列:  {} 
素数环: (1 2 3 4 7 10 9 8 5 6)


*/

属性大小日期时间名称

---------------------------------------

文件16182008-02-1315:54例3.3求解素数环问题\PrimeRingjava素数环.class

文件26562008-07-2116:06例3java素数环.3求解素数环问题\PrimeRing.java

目录02010-06-2309:43例3.3求解素数环问题

---------------------------------------

42743