不使用标志的给定范围内的素数

时间:2017-03-23 21:32:46

标签: java

我是Java编程新手。 我想打印给定范围内的素数。 我知道那个标志方法,但我想尝试别的东西。

我研究过这种方法。

/ **  *  * @author Mridul  * / 公共类JavaApplication23 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    int x1=2;
    int x2=89;

    for(int i=x1;i<x2;i++)
    {
        for(int j=2;j<i;j++)
        {
            if(i%j==0)
            {
                break;
            }
            System.out.println(i);


        }

    }
}
}

它没有给我预期的结果。 任何人都可以编辑这段代码,这样我就可以得到结果 请不要使用任何新变量,只需编辑此代码。

3 个答案:

答案 0 :(得分:2)

for(int i=x1;i<x2;i++)
{
    int factors = 0;
    for(int j=1;j<=i;j++)
    {
        if(i%j==0)
        {
            factors++;
        }
    }
    if(factors == 2)
      System.out.println(i);
}

答案 1 :(得分:0)

public static void main(String[] args) {
     // TODO code application logic here
     int x1=2;
     int x2=89;

     for(int i=x1;i<x2;i++)
     {
         boolean prime = true;
         for(int j=2;j<i;j++)
         {
             if(i%j==0)
             {   
                 prime = false;
                 break;
             }

         }
         if (prime) {
             System.out.println(i);
         }
    }
}

答案 2 :(得分:0)

这是怎么回事? (写自我的手机,我希望它有效)

public static void main(String[] args) {
  int x1=2;
  int x2=89;
  for(int i=x1;i<x2;i++) {
    boolean isPrime = true;
    for(int j=2;j<i;j++) {
      if(i%j==0) {
        isPrime = false;
        break;
      }
    }
    if(isPrime) {
      System.out.println(i);
    }
  }
}