Java-终止无限循环

Java-终止无限循环,java,break,prime-factoring,Java,Break,Prime Factoring,我有一个代码块,我已经写了给我最大的素数因子的任何数字 public static void main(String[] args) { long n = 49; while (true) { long x = sPrimeFactor(n); if (x < n) n /= x; else System.out.println(n); } } p

我有一个代码块,我已经写了给我最大的素数因子的任何数字

  public static void main(String[] args) {

      long n = 49;
      while (true) {
          long x = sPrimeFactor(n);
          if (x < n) n /= x;
          else 
              System.out.println(n);
      }

  }

  public static long sPrimeFactor (long n){
      if (n <= 1) return 1;
      long cap = (long) Math.sqrt(n);
              for (long i = 2; i <= cap; i++) {
                  if (n % i == 0) return i;
              }
              return n;
  }
publicstaticvoidmain(字符串[]args){
长n=49;
while(true){
长x=螺旋因子(n);
如果(x
或者使用
break;
是另一种方法

public static void main(String[] args) {

      long n = (long) 49;
      while (true) {
          long p = sPrimeFactor(n);
          if (p < n) n /= p;
          if (p == n) break;
      }
      System.out.println(n);

  }

  public static long sPrimeFactor (long n){
      if (n <= 1) return 1;
      long cap = (long) Math.sqrt(n);
              for (long i = 2; i <= cap; i++) {
                  if (n % i == 0) return i;
              }
              return n;
  }
while (true) {}