Miller–Rabin primality test: Difference between revisions
Content added Content deleted
(added FreeBASIC) |
m (→{{header|Sidef}}: minor simplifications) |
||
Line 3,828: | Line 3,828: | ||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
<lang ruby>func is_prime(n |
<lang ruby>func is_prime(n, k) { |
||
⚫ | |||
n == 2 && return true |
|||
n <= 1 && return false |
|||
n %% 2 && return false |
|||
⚫ | |||
var s = valuation(d, 2) |
|||
d >>= s |
|||
k.times { |
k.times { |
||
Line 3,840: | Line 3,845: | ||
(s-1).times { |
(s-1).times { |
||
x.expmod!(2, n) |
x.expmod!(2, n) |
||
return false if x |
return false if x==1 |
||
break if (x == n-1) |
break if (x == n-1) |
||
} |
} |
||
Line 3,849: | Line 3,854: | ||
} |
} |
||
say(^1000->grep {|n| is_prime(n, 10) }.join(', '))</lang> |
|||
func is_prime(_n, _k) { false } |
|||
say 1000.range.grep {|n| is_prime(n, 10) }.join(", ")</lang> |
|||
=={{header|Smalltalk}}== |
=={{header|Smalltalk}}== |