2014-01-25 64 views
-1

我正在嘗試在Java中編寫一個可以接受整數數組並確定數組是否包含素數的元素的代碼,完美正方形或負數,使用定義的方法,稱爲contains。該方法接受一個整數數組,如果數組中存在滿足指定條件的任何項,則返回true。例如,下面的代碼片段:定義一個方法,確定數組中的元素是負數,素數還是完全平方數

int[] input = {100, 37, 49}; 

boolean result1 = contains(input, new Prime()); 
boolean result2 = contains(input, new PerfectSquare()); 
boolean result2 = contains(input, new Negative()); 

result1將自37返回true爲素數,result2也將因爲100返回true和49是完全平方,並且因爲沒有任何元素都是負result3將返回false。該代碼需要執行:

  • 用於指定要包含的第二個參數的接口。

  • contains方法本身(這是一種靜態方法)。

  • 類負,總理和完美廣場。

我的主要問題是確定如何編寫contains方法以及Prime和PerfectSquare類。任何幫助將不勝感激。

+2

你在哪裏卡住了? –

+0

我只是不確定如何在java中定義一個素數或一個完美的正方形。我真的在尋找一種能夠確定任何給定數字是否爲素數的算法,以及確定數字是否爲完美正方形的算法。這些是我的主要問題。如果我不是很清楚,我很抱歉,這是我第一次在這裏發表問題。 – user3235750

+0

http://stackoverflow.com/questions/tagged/primes+java嘗試此鏈接。 :) –

回答

0

要確定數字是否爲素數,您需要將數字除以該數字的平方根的每個數字1。

static boolean isPrime(int num){ 
for(int i=2;i<=Math.sqrt(num);i++){ 
if (num%i==0)//if you can divide him by a number other than 1 and himself return false 
return false 
     } 
return true; 

} 

要確定一個數是否爲完美的正方形,只是做它的平方根,並檢查它是否是一個int

static boolean isPerfectRoot(int num){ 
double sqrt=Math.sqrt(num); 
int casting=(int)(sqrt);//cast it to an int 
if(sqrt%casting==0) 
return true; 
else 
return false 


} 

我假設你知道如何寫一個方法isNegative()。您可以在您的包含方法中調用這3種方法。你的包含方法必須基本上遍歷數組,並在每個輸入上調用3個方法。 你需要什麼類,它沒有意義,尤其是你沒有給他們任何論點,你能澄清你的意圖嗎?

相關問題