如何乘以一定数量的素数?

时间:2015-05-12 20:31:08

标签: java

我如何编写一个程序,当你输入一个数字时,例如5,它会给我第一个第五个素数的输出相乘?

例如,5应该返回2 * 3 * 5 * 7 * 11 = 2310.这是一个大项目的一部分,这部分让我难过。

2 个答案:

答案 0 :(得分:1)

不会给你一个完整的答案,只是引导你朝着正确的方向前进。

  1. 找到第一个i素数。这可以通过蛮力,或使用一些更智能的算法,如Sieve_of_Eratosthenes来完成。
    (一个天真的算法只是迭代地检查每个数字,看看它是否是一个素数,通过检查它是否可被所有较低的数字分割,当你找到正确数量的素数时中止)。
  2. 乘以数字。这可能是一个非常大的数字,所以我建议使用BigInteger对象。
  3. 实现这些部分应该相当容易,留给你。

答案 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 ;

     }
}