dポイントプレゼントキャンペーン実施中!

class Integer
def prime?
n = self.abs()
return true if n == 2
return false if n == 1 || n & 1 == 0
d = n-1
d >>= 1 while d & 1 == 0
20.times do
a = rand(n-2) + 1
t = d
y = ModMath.pow(a,t,n)
while t != n-1 && y != 1 && y != n-1
y = (y * y) % n
t <<= 1
end
return false if y != n-1 && t & 1 == 0
end
return true
end
end

module ModMath
def ModMath.pow(base, power, mod)
result = 1
while power > 0
result = (result * base) % mod if power & 1 == 1
base = (base * base) % mod
power >>= 1;
end
result
end
end

上記プログラムをjavaで書き直して頂きたく投稿いたしました。
もしよろしければお願いします。

A 回答 (1件)

#どこまで移植すれば妥当なのか…完全移植はおそらく言語仕様上無理。



##JavaにC#の拡張メソッドのようなものはないと思う。
##また、Javaはメソッド名に文字'?'を含められないと思う。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!