e$BK-J!$G$9!#e(B
((2**17-1)2).prime_division e$B$KHf$Y$Fe(B
((219-1)**2).prime_division
e$B$N;~4V$,0[MM$K$+$+$k$N$GD4$Y$?$H$3$me(B Integer#prime_division
e$B$NCf$Ne(B
ps = Prime.new
[email protected]@.$9$k$N$K%3%9%H$,$+$+$C$F$$$F!"$h$jC1=c$Je(B
ps = (2…n)
e$B$r;H$&J}$,B.$/$J$k$h$&$G$9!#e(B
e$B!J<BMQ$K$Oe(B 2,3e$B$He(B e$B!^e(B1(mod 6)
e$B$"$?$j$r;H$&$N$,$h$$$G$7$g$&$+!Ke(B
e$B$^$?e(B Prime e$B$Ne(B initialize e$B$He(B succ
e$B$b$h$jC1=c$K$7$?e(B
def initialize
@seed = 1
@primes = []
end
def succ
i = -1
size = @primes.size
while i < size
if i == -1
@seed += 1
i += 1
else
prime = @primes[i]
q,r = @seed.divmod(prime)
if r != 0
break if q <= prime
i += 1
else
i = -1
end
end
end
@primes.push @seed
return @seed
end
e$B$NJ}$,B.$/$J$k$h$&$G$9!#e(B
e$BK-J!e(B
[email protected]