Miller–Rabin primality test: Difference between revisions
Content added Content deleted
m (→{{header|D}}: trans) |
m (→{{header|D}}) |
||
Line 494: | Line 494: | ||
{{trans|Ruby}} |
{{trans|Ruby}} |
||
<lang d>import std.random; |
<lang d>import std.random; |
||
bool isProbablePrime(ulong n, int k) { |
bool isProbablePrime(ulong n, int k) { |
||
if (n < 2 || n % 2 == 0) |
if (n < 2 || n % 2 == 0) |
||
Line 505: | Line 506: | ||
} |
} |
||
assert(2 ^^ s * d == n - 1); |
assert(2 ^^ s * d == n - 1); |
||
outer: |
outer: |
||
foreach (_; 0 .. k) { |
foreach (_; 0 .. k) { |
||
Line 518: | Line 520: | ||
return false; |
return false; |
||
} |
} |
||
return true; |
return true; |
||
} |
} |