2015-04-02 85 views
-1

我需要創建一個Java方法,它接受一個參數(一個數字)並生成該位數的素數。創建一個生成給定大小的素數的方法

輸出示例:

$ primegenerate(1024) 
$ 142405175064861448442669284843420489603593930617313976674095914073492903976984848373315014340583589674334422581561784146805278310143147937016874549483037286357105260324082207009125626858996989027805604841776344359158053673248019204338406280932000275573354237039522117150476778214733739382939035838341675795443 

我的問題是試圖在沒有內置類使用任何Java實現代碼。不知道從哪裏開始。如果有人能指出我正確的方向,將不勝感激。

我能夠轉換使用BigInt檢查常規素數的方法。現在我需要產生一些比特,如1024比特的素數。我只需要你們指點我的方向,這也是我研究的一部分。

import java.math.*; 

public class Prime { 

public boolean primeCheck(BigInteger n) //My BigInteger version , returns true if number is Prime, false if not 
{ 
     if (n.intValue()==2) //case n =2, function returns true. 
     { 
     return true; 
     } 

     for (int i=2;i<=(int)Math.sqrt(n.intValue())+1;i++) //loops through 2 to sqrt(n). 
     { 
     if (n.intValue()%i==0) //if a divisor is found, its not prime. returns false 
     { 
      return false; 
     } 
     } 
     return true; //if all cases are not divisible by n, it is prime. 
    } 
} 
+0

@ErwinBolwidt檢查我的編輯 – dogbern 2015-04-07 17:47:40

+0

一旦你檢查了整除之後,你只需要檢查奇數。這將會(幾乎)減少你必須做的檢查次數。如果您仔細考慮,可以擴展這種見解。 – rossum 2015-04-10 15:43:29

回答

1

此問題有兩個部分。 1)生成一定數量的比特大小。 2)檢查您剛剛生成的數字是否爲質數。編寫代碼分別完成每個部分。請回到這裏,你不能讓你的代碼的一部分正常工作。

相關問題