我如何编写一个程序,当你输入一个数字时,例如5,它会给我第一个第五个素数的输出相乘?
例如,5应该返回2 * 3 * 5 * 7 * 11 = 2310.这是一个大项目的一部分,这部分让我难过。
答案 0 :(得分:1)
不会给你一个完整的答案,只是引导你朝着正确的方向前进。
i
素数。这可以通过蛮力,或使用一些更智能的算法,如Sieve_of_Eratosthenes来完成。
BigInteger
对象。实现这些部分应该相当容易,留给你。
答案 1 :(得分:-1)
这个功能可以帮到你
private ArrayList<Integer> primes = new ArrayList<Integer>() ;
public void primeMultiply(int j){
boolean isPrime = false;
if(j<4){
primes.add(1);
primes.add(2);
primes.add(3);
double mutliply = 1 ;
for(Integer int1 : primes){
multiply *= int1 ;
}
System.out.println("Multiply=" + multiply) ;
return ;
}else{
primes.add(1);
primes.add(2);
primes.add(3);
for(int k=4 ; k<=j ; k++){
if(k%2 == 0) continue;
isPrime = true ;
else{
for(int q=2 ; q<k-1 ; q++){
if(k%q==0){
isPrime = flase; break;
}
}
}
if(isPrime){primes.add(k) ;}
isPrime= false ;
}
for(Integer int1 : primes){
multiply *= int1 ;
}
System.out.println("Multiply=" + multiply) ;
return ;
}
}