java - java如何对一个数进行因式分解

标签 java

我需要将 24 之类的数字因式分解为 1,2,2,2,3。我的方法:

static int[] factorsOf (int val) {
          int index = 0;
      int []numArray = new int[index];

      System.out.println("\nThe factors of " + val + " are:");
      for(int i=1; i <= val/2; i++)
      {
          if(val % i == 0)
          {   
              numArray1 [index] = i;
              index++;
          }
      }

      return numArray;

  }

但是,它不起作用。有人可以帮我吗?

最佳答案

你有一些错误,你不能创建没有大小的 int 数组。我改用数组列表。

static Integer[] factorsOf(int val) {
    List<Integer> numArray = new ArrayList<Integer>();

    System.out.println("\nThe factors of " + val + " are:");
    for (int i = 2; i <= Math.ceil(Math.sqrt(val)); i++) {
        if (val % i == 0) {
            numArray.add(i);
            val /= i;
            System.out.print(i + ", ");
        }
    }
    numArray.add(val);
    System.out.print(val);
    return numArray.toArray(new Integer[numArray.size()]);
}

根据您的要求使用 int[] 的完整程序。

public class Test2 {
    public static void main(String[] args) {
        int val = 5;
        int [] result = factorsOf(val);
        System.out.println("\nThe factors of " + val + " are:");
        for(int i = 0; i < result.length && result[i] != 0; i ++){
            System.out.println(result[i] + " ");
        }
    }

    static int[] factorsOf(int val) {
        int limit = (int) Math.ceil(Math.sqrt(val));
        int [] numArray = new int[limit];
        int index = 0;

        for (int i = 1; i <= limit; i++) {
            if (val % i == 0) {
                numArray[index++] = i;
                val /= i;
            }
        }
        numArray[index] = val;
        return numArray;
    }
}

关于java - java如何对一个数进行因式分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223477/

相关文章:

java - 获取循环外的列表

java - LWJGL 鼠标滚轮 getDWheel() 方法

java - 如何确保我的程序生成的所有 Selenium Webdriver 在程序终止时都是 quit() ?

java - 使用 C++/CLI 从 Visual C/C++ 调用 Java 方法

java - 无法写入核心转储。默认情况下,Windows 客户端版本不启用小型转储

Java JodaTime 期间格式化

javascript - 如何从其他Web项目调用rest api

java - 如何使用 CvCameraViewListener 快速访问每一帧的像素颜色

java - 在 Java 上加载一个 dll 库

java - Tomcat 和打开文件处理程序