用java实现的素数第二种算法

    技术2022-05-11  54

     

    //遍历2以上N的平方根以下的每一个整数,是不是能整除N 一,DOS界面 public class PrimeNumber1 {  public static void main(String args[]) {  int N = 100;  int p[]=new int[50];  p[0] = 2;// 放入第一个素数,有人说2不是素数,如果你是其中一员,就改成3吧  int nu = 1;  boolean bflag = true;   for(int i = 3;i <N; ++i)   {   bflag = true;   int iTemp = (int)Math.sqrt((float)i);    for (int j = 2; j <=iTemp; ++j)    {     if(i%j == 0)     {     bflag = false;     break;     }    }    if(bflag)    {    p[nu++] =(int)i;    }   }   for(int l=0;l<=nu-1;l++)   System.out.print(p[l]+" ");   } }     二,带弹出窗口的:(怎样在弹出窗口中一次输出所有的素数还没解决,现在只能在DOS中输出结果) import javax.swing.JOptionPane; public class PrimeNumber1Pane {  public static void main(String args[])  {   while (true)   {    String b = JOptionPane.showInputDialog("Enter figure that you want to beg prime number!");    int N = Integer.parseInt(b);    int p[] = new int[50];    PrimeNumber1Pane a = new PrimeNumber1Pane();    int nu = a.primeNumber(p, N);    for (int l = 0; l <= nu - 1; l++)     System.out.print(p[l] + " ");    int answer = JOptionPane.showConfirmDialog(null, "End program?", "Want to end?", JOptionPane.YES_NO_OPTION);    //字符串“End program?”可以被别的字符串取代,这将是出现在带Yes/No按钮的窗口中的字符口串,字符串“Want to end?”也可被取代,并将出现在窗口的标题中。    //JOptionPane.YES_NO_OPTION表示你需要一个带Yes/No的窗口。    if (answer == JOptionPane.YES_OPTION)     System.exit(0);    else if (answer == JOptionPane.NO_OPTION)     System.out.println("/nOne more time");   }   //else    //System.out.println("This is impossible");  }  public int primeNumber(int p[],int N)//p为放入素数的首地址,N为要求素数的数,返回为素数的个数   {   p[0] = 2;// 放入第一个素数,有人说2不是素数,如果你是其中一员,就改成3吧   int nu = 1;   boolean bflag = true;   for (int i = 3; i < N; ++i)   {    bflag = true;    int iTemp = (int)Math.sqrt((float)i);    for (int j = 2; j <= iTemp; ++j)    {     if (i % j == 0)     {      bflag = false;      break;     }    }    if (bflag)    {     p[nu++] = (int)i;    }   }   return nu;   } }
     

    最新回复(0)