除以 Java 中的质数
Division By Primes in Java
我只是想知道是否有预制的除以素数的方法?我找不到,但我的数学老师在大学里学了两年编程,说有一个。那么有没有一种预制的方法可以让我输入并得到数字素数的倍数的输出,还是我必须自己制作?
Java中没有预制的除素数方法。您必须自己创建一个,您应该这样做,因为您将学到一些重要的概念。
你的问题不够清楚,但正如你最后的话所表明的,你想要一个核心 Java 库函数,将数字分解为 prime factors。据我所知,Core Java 库中没有这样的东西。并非所有可能的方法都可以包含在核心库中。
看看这两个解决方案:
Faster prime factorization for huge BigIntegers in Java
请注意,这些方法使用BigDecimal,因此它们是任意精度数字。
如果你想要一个简单的 API,你可以使用 Primes class from Apache Common Java componnets. The method primeFactors 完成工作:
public static List<Integer> primeFactors(int n)
Prime factors decomposition
Parameters:
n - number to factorize: must be ≥ 2
Returns:
list of prime factors of n
Throws:
MathIllegalArgumentException - if n < 2.
我是新手,不知道这样的方法或smth,但是你可以很容易地自己做。我试着得到一些你可以在下面看到的东西。
不客气。
import java.util.ArrayList;
public class arrayString {
public static void main(String[] args) {
int a=1024; //this is number
int b = a; //this is number
int mult = 1;
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i =2; i<=a; i++){
while (a%i == 0)
{
a /= i;
list.add(i);
}
}
System.out.println(b+" factorization is:");
for (Integer data:list){
System.out.println(data);
mult *= data;
}
//check
System.out.println(mult);
}
}
我只是想知道是否有预制的除以素数的方法?我找不到,但我的数学老师在大学里学了两年编程,说有一个。那么有没有一种预制的方法可以让我输入并得到数字素数的倍数的输出,还是我必须自己制作?
Java中没有预制的除素数方法。您必须自己创建一个,您应该这样做,因为您将学到一些重要的概念。
你的问题不够清楚,但正如你最后的话所表明的,你想要一个核心 Java 库函数,将数字分解为 prime factors。据我所知,Core Java 库中没有这样的东西。并非所有可能的方法都可以包含在核心库中。
看看这两个解决方案:
Faster prime factorization for huge BigIntegers in Java
请注意,这些方法使用BigDecimal,因此它们是任意精度数字。
如果你想要一个简单的 API,你可以使用 Primes class from Apache Common Java componnets. The method primeFactors 完成工作:
public static List<Integer> primeFactors(int n)
Prime factors decomposition
Parameters:
n - number to factorize: must be ≥ 2
Returns:
list of prime factors of n
Throws:
MathIllegalArgumentException - if n < 2.
我是新手,不知道这样的方法或smth,但是你可以很容易地自己做。我试着得到一些你可以在下面看到的东西。 不客气。
import java.util.ArrayList;
public class arrayString {
public static void main(String[] args) {
int a=1024; //this is number
int b = a; //this is number
int mult = 1;
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i =2; i<=a; i++){
while (a%i == 0)
{
a /= i;
list.add(i);
}
}
System.out.println(b+" factorization is:");
for (Integer data:list){
System.out.println(data);
mult *= data;
}
//check
System.out.println(mult);
}
}