N-smooth numbers: Difference between revisions

Line 770:
<lang ruby>require "big"
 
def prime?(n) # P3 Prime Generator primality test
return false unless n |> 1 == 3 if&& (n <% 56) | 4 == 5 #|| n: 2,3|true; 0,1,4|false == 3
returnsqrt_n false= if nMath.gcdisqrt(6n) != 1 # thisFor filtersCrystal out< 1.2/3.0 ofuse all integersMath.sqrt(n).to_i
pc = typeof(n).new(5) # first P3 prime candidates sequence value
while pc <= sqrt_n
while pc <= Math.isqrt(n) # For Crystal < 1.2.0 use Math.sqrt(n).to_i
return false if n % pc == 0 || n % (pc + 2) == 0 # if n is composite
pc += 6
pc += 6 # 1st prime candidate for next residues group
end
true
Anonymous user