Linux premium71.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
LiteSpeed
Server IP : 198.187.29.8 & Your IP : 216.73.216.206
Domains :
Cant Read [ /etc/named.conf ]
User : cleahvkv
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
ruby23 /
lib64 /
ruby /
2.3.0 /
Delete
Unzip
Name
Size
Permission
Date
Action
cgi
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
digest
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
drb
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
fiddle
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
io
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
irb
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
json
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
matrix
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
net
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
openssl
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
optparse
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
psych
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
racc
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
rbconfig
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
rdoc
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
rexml
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
rinda
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
ripper
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
rss
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
rubygems
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
shell
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
syslog
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
unicode_normalize
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
uri
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
webrick
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
x86_64-linux
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
xmlrpc
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
yaml
[ DIR ]
drwxr-xr-x
2024-03-03 22:43
English.rb
6.45
KB
-rw-r--r--
2015-12-16 05:07
abbrev.rb
3.49
KB
-rw-r--r--
2015-12-16 05:07
base64.rb
3.31
KB
-rw-r--r--
2015-12-16 05:07
benchmark.rb
17.9
KB
-rw-r--r--
2015-12-23 03:43
cgi.rb
9.8
KB
-rw-r--r--
2015-12-16 05:07
cmath.rb
9.48
KB
-rw-r--r--
2015-12-16 05:07
csv.rb
82.15
KB
-rw-r--r--
2015-12-19 05:23
date.rb
1011
B
-rw-r--r--
2023-07-26 14:39
debug.rb
29.97
KB
-rw-r--r--
2015-12-16 05:07
delegate.rb
10.29
KB
-rw-r--r--
2015-12-16 05:07
digest.rb
2.82
KB
-rw-r--r--
2023-07-26 14:39
drb.rb
50
B
-rw-r--r--
2015-12-16 05:07
e2mmap.rb
3.8
KB
-rw-r--r--
2015-12-16 05:07
erb.rb
26.45
KB
-rw-r--r--
2017-06-30 11:24
expect.rb
2.17
KB
-rw-r--r--
2023-07-26 14:39
fiddle.rb
1.68
KB
-rw-r--r--
2023-07-26 14:39
fileutils.rb
47.47
KB
-rw-r--r--
2017-03-27 16:57
find.rb
2.51
KB
-rw-r--r--
2015-12-16 05:07
forwardable.rb
7.97
KB
-rw-r--r--
2018-03-18 15:04
getoptlong.rb
15.41
KB
-rw-r--r--
2015-12-23 03:43
ipaddr.rb
17.08
KB
-rw-r--r--
2015-12-16 05:07
irb.rb
20.06
KB
-rw-r--r--
2016-03-29 06:10
json.rb
1.77
KB
-rw-r--r--
2023-07-26 14:39
kconv.rb
5.77
KB
-rw-r--r--
2023-07-26 14:39
logger.rb
21.93
KB
-rw-r--r--
2016-10-17 17:38
mathn.rb
3.87
KB
-rw-r--r--
2015-12-16 05:07
matrix.rb
53.37
KB
-rw-r--r--
2015-12-16 05:07
mkmf.rb
83.79
KB
-rw-r--r--
2023-07-26 14:36
monitor.rb
7.01
KB
-rw-r--r--
2015-12-16 05:07
mutex_m.rb
2.03
KB
-rw-r--r--
2015-12-16 05:07
observer.rb
5.83
KB
-rw-r--r--
2015-12-16 05:07
open-uri.rb
24.61
KB
-rw-r--r--
2015-11-11 03:48
open3.rb
20.67
KB
-rw-r--r--
2015-11-14 07:43
openssl.rb
445
B
-rw-r--r--
2023-07-26 14:39
optionparser.rb
59
B
-rw-r--r--
2015-12-16 05:07
optparse.rb
56.91
KB
-rw-r--r--
2017-08-09 07:56
ostruct.rb
9.95
KB
-rw-r--r--
2018-01-31 11:05
pathname.rb
16.08
KB
-rw-r--r--
2023-07-26 14:39
pp.rb
14.2
KB
-rw-r--r--
2015-11-10 11:48
prettyprint.rb
15.89
KB
-rw-r--r--
2015-11-10 11:48
prime.rb
12.35
KB
-rw-r--r--
2015-12-16 05:07
profile.rb
236
B
-rw-r--r--
2015-12-16 05:07
profiler.rb
4.54
KB
-rw-r--r--
2015-12-16 05:07
pstore.rb
14.58
KB
-rw-r--r--
2015-12-23 03:43
psych.rb
15.29
KB
-rw-r--r--
2023-07-26 14:39
psych_jars.rb
175
B
-rw-r--r--
2023-07-26 14:39
rdoc.rb
5.07
KB
-rw-r--r--
2015-12-22 12:08
resolv-replace.rb
1.76
KB
-rw-r--r--
2015-11-14 08:25
resolv.rb
73.52
KB
-rw-r--r--
2018-03-28 06:03
ripper.rb
2.56
KB
-rw-r--r--
2023-07-26 14:39
rss.rb
2.87
KB
-rw-r--r--
2015-12-16 05:07
rubygems.rb
32.24
KB
-rw-r--r--
2018-02-16 16:21
scanf.rb
23.56
KB
-rw-r--r--
2015-12-16 05:07
securerandom.rb
7.49
KB
-rw-r--r--
2016-04-22 15:30
set.rb
19.67
KB
-rw-r--r--
2015-11-16 07:41
shell.rb
11.33
KB
-rw-r--r--
2015-12-16 05:07
shellwords.rb
6.28
KB
-rw-r--r--
2015-12-16 09:25
singleton.rb
4.05
KB
-rw-r--r--
2015-12-16 05:07
socket.rb
43.49
KB
-rw-r--r--
2023-07-26 14:39
sync.rb
7.29
KB
-rw-r--r--
2015-12-16 05:07
tempfile.rb
10.87
KB
-rw-r--r--
2017-03-27 14:47
thwait.rb
3.34
KB
-rw-r--r--
2015-12-16 05:07
time.rb
22.28
KB
-rw-r--r--
2015-11-14 12:45
timeout.rb
3.68
KB
-rw-r--r--
2015-12-18 15:46
tmpdir.rb
4.17
KB
-rw-r--r--
2018-03-28 10:29
tracer.rb
6.43
KB
-rw-r--r--
2015-12-16 05:07
tsort.rb
14.3
KB
-rw-r--r--
2015-11-14 08:46
ubygems.rb
299
B
-rw-r--r--
2015-12-16 05:07
un.rb
8.87
KB
-rw-r--r--
2015-12-16 05:07
unicode_normalize.rb
3.19
KB
-rw-r--r--
2015-12-16 05:07
uri.rb
3.1
KB
-rw-r--r--
2015-12-16 05:07
weakref.rb
2.95
KB
-rw-r--r--
2015-12-16 05:07
webrick.rb
6.72
KB
-rw-r--r--
2015-12-23 03:43
xmlrpc.rb
8.93
KB
-rw-r--r--
2015-12-23 03:43
yaml.rb
1.73
KB
-rw-r--r--
2015-12-16 05:07
Save
Rename
# frozen_string_literal: false # # = prime.rb # # Prime numbers and factorization library. # # Copyright:: # Copyright (c) 1998-2008 Keiju ISHITSUKA(SHL Japan Inc.) # Copyright (c) 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp> # # Documentation:: # Yuki Sonoda # require "singleton" require "forwardable" class Integer # Re-composes a prime factorization and returns the product. # # See Prime#int_from_prime_division for more details. def Integer.from_prime_division(pd) Prime.int_from_prime_division(pd) end # Returns the factorization of +self+. # # See Prime#prime_division for more details. def prime_division(generator = Prime::Generator23.new) Prime.prime_division(self, generator) end # Returns true if +self+ is a prime number, else returns false. def prime? return self >= 2 if self <= 3 return false if self % 2 == 0 or self % 3 == 0 (5..(self**0.5).floor).step(6).each do |i| if self % i == 0 || self % (i + 2) == 0 return false end end true end # Iterates the given block over all prime numbers. # # See +Prime+#each for more details. def Integer.each_prime(ubound, &block) # :yields: prime Prime.each(ubound, &block) end end # # The set of all prime numbers. # # == Example # # Prime.each(100) do |prime| # p prime #=> 2, 3, 5, 7, 11, ...., 97 # end # # Prime is Enumerable: # # Prime.first 5 # => [2, 3, 5, 7, 11] # # == Retrieving the instance # # For convenience, each instance method of +Prime+.instance can be accessed # as a class method of +Prime+. # # e.g. # Prime.instance.prime?(2) #=> true # Prime.prime?(2) #=> true # # == Generators # # A "generator" provides an implementation of enumerating pseudo-prime # numbers and it remembers the position of enumeration and upper bound. # Furthermore, it is an external iterator of prime enumeration which is # compatible with an Enumerator. # # +Prime+::+PseudoPrimeGenerator+ is the base class for generators. # There are few implementations of generator. # # [+Prime+::+EratosthenesGenerator+] # Uses eratosthenes' sieve. # [+Prime+::+TrialDivisionGenerator+] # Uses the trial division method. # [+Prime+::+Generator23+] # Generates all positive integers which are not divisible by either 2 or 3. # This sequence is very bad as a pseudo-prime sequence. But this # is faster and uses much less memory than the other generators. So, # it is suitable for factorizing an integer which is not large but # has many prime factors. e.g. for Prime#prime? . class Prime include Enumerable include Singleton class << self extend Forwardable include Enumerable def method_added(method) # :nodoc: (class<< self;self;end).def_delegator :instance, method end end # Iterates the given block over all prime numbers. # # == Parameters # # +ubound+:: # Optional. An arbitrary positive number. # The upper bound of enumeration. The method enumerates # prime numbers infinitely if +ubound+ is nil. # +generator+:: # Optional. An implementation of pseudo-prime generator. # # == Return value # # An evaluated value of the given block at the last time. # Or an enumerator which is compatible to an +Enumerator+ # if no block given. # # == Description # # Calls +block+ once for each prime number, passing the prime as # a parameter. # # +ubound+:: # Upper bound of prime numbers. The iterator stops after it # yields all prime numbers p <= +ubound+. # def each(ubound = nil, generator = EratosthenesGenerator.new, &block) generator.upper_bound = ubound generator.each(&block) end # Returns true if +value+ is a prime number, else returns false. # # == Parameters # # +value+:: an arbitrary integer to be checked. # +generator+:: optional. A pseudo-prime generator. def prime?(value, generator = Prime::Generator23.new) raise ArgumentError, "Expected a prime generator, got #{generator}" unless generator.respond_to? :each raise ArgumentError, "Expected an integer, got #{value}" unless value.respond_to?(:integer?) && value.integer? return false if value < 2 generator.each do |num| q,r = value.divmod num return true if q < num return false if r == 0 end end # Re-composes a prime factorization and returns the product. # # == Parameters # +pd+:: Array of pairs of integers. The each internal # pair consists of a prime number -- a prime factor -- # and a natural number -- an exponent. # # == Example # For <tt>[[p_1, e_1], [p_2, e_2], ...., [p_n, e_n]]</tt>, it returns: # # p_1**e_1 * p_2**e_2 * .... * p_n**e_n. # # Prime.int_from_prime_division([[2,2], [3,1]]) #=> 12 def int_from_prime_division(pd) pd.inject(1){|value, (prime, index)| value * prime**index } end # Returns the factorization of +value+. # # == Parameters # +value+:: An arbitrary integer. # +generator+:: Optional. A pseudo-prime generator. # +generator+.succ must return the next # pseudo-prime number in the ascending # order. It must generate all prime numbers, # but may also generate non prime numbers too. # # === Exceptions # +ZeroDivisionError+:: when +value+ is zero. # # == Example # For an arbitrary integer: # # n = p_1**e_1 * p_2**e_2 * .... * p_n**e_n, # # prime_division(n) returns: # # [[p_1, e_1], [p_2, e_2], ...., [p_n, e_n]]. # # Prime.prime_division(12) #=> [[2,2], [3,1]] # def prime_division(value, generator = Prime::Generator23.new) raise ZeroDivisionError if value == 0 if value < 0 value = -value pv = [[-1, 1]] else pv = [] end generator.each do |prime| count = 0 while (value1, mod = value.divmod(prime) mod) == 0 value = value1 count += 1 end if count != 0 pv.push [prime, count] end break if value1 <= prime end if value > 1 pv.push [value, 1] end pv end # An abstract class for enumerating pseudo-prime numbers. # # Concrete subclasses should override succ, next, rewind. class PseudoPrimeGenerator include Enumerable def initialize(ubound = nil) @ubound = ubound end def upper_bound=(ubound) @ubound = ubound end def upper_bound @ubound end # returns the next pseudo-prime number, and move the internal # position forward. # # +PseudoPrimeGenerator+#succ raises +NotImplementedError+. def succ raise NotImplementedError, "need to define `succ'" end # alias of +succ+. def next raise NotImplementedError, "need to define `next'" end # Rewinds the internal position for enumeration. # # See +Enumerator+#rewind. def rewind raise NotImplementedError, "need to define `rewind'" end # Iterates the given block for each prime number. def each return self.dup unless block_given? if @ubound last_value = nil loop do prime = succ break last_value if prime > @ubound last_value = yield prime end else loop do yield succ end end end # see +Enumerator+#with_index. def with_index(offset = 0) return enum_for(:with_index, offset) { Float::INFINITY } unless block_given? return each_with_index(&proc) if offset == 0 each do |prime| yield prime, offset offset += 1 end end # see +Enumerator+#with_object. def with_object(obj) return enum_for(:with_object, obj) { Float::INFINITY } unless block_given? each do |prime| yield prime, obj end end def size Float::INFINITY end end # An implementation of +PseudoPrimeGenerator+. # # Uses +EratosthenesSieve+. class EratosthenesGenerator < PseudoPrimeGenerator def initialize @last_prime_index = -1 super end def succ @last_prime_index += 1 EratosthenesSieve.instance.get_nth_prime(@last_prime_index) end def rewind initialize end alias next succ end # An implementation of +PseudoPrimeGenerator+ which uses # a prime table generated by trial division. class TrialDivisionGenerator<PseudoPrimeGenerator def initialize @index = -1 super end def succ TrialDivision.instance[@index += 1] end def rewind initialize end alias next succ end # Generates all integers which are greater than 2 and # are not divisible by either 2 or 3. # # This is a pseudo-prime generator, suitable on # checking primality of an integer by brute force # method. class Generator23<PseudoPrimeGenerator def initialize @prime = 1 @step = nil super end def succ if (@step) @prime += @step @step = 6 - @step else case @prime when 1; @prime = 2 when 2; @prime = 3 when 3; @prime = 5; @step = 2 end end @prime end alias next succ def rewind initialize end end # Internal use. An implementation of prime table by trial division method. class TrialDivision include Singleton def initialize # :nodoc: # These are included as class variables to cache them for later uses. If memory # usage is a problem, they can be put in Prime#initialize as instance variables. # There must be no primes between @primes[-1] and @next_to_check. @primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101] # @next_to_check % 6 must be 1. @next_to_check = 103 # @primes[-1] - @primes[-1] % 6 + 7 @ulticheck_index = 3 # @primes.index(@primes.reverse.find {|n| # n < Math.sqrt(@@next_to_check) }) @ulticheck_next_squared = 121 # @primes[@ulticheck_index + 1] ** 2 end # Returns the cached prime numbers. def cache @primes end alias primes cache alias primes_so_far cache # Returns the +index+th prime number. # # +index+ is a 0-based index. def [](index) while index >= @primes.length # Only check for prime factors up to the square root of the potential primes, # but without the performance hit of an actual square root calculation. if @next_to_check + 4 > @ulticheck_next_squared @ulticheck_index += 1 @ulticheck_next_squared = @primes.at(@ulticheck_index + 1) ** 2 end # Only check numbers congruent to one and five, modulo six. All others # are divisible by two or three. This also allows us to skip checking against # two and three. @primes.push @next_to_check if @primes[2..@ulticheck_index].find {|prime| @next_to_check % prime == 0 }.nil? @next_to_check += 4 @primes.push @next_to_check if @primes[2..@ulticheck_index].find {|prime| @next_to_check % prime == 0 }.nil? @next_to_check += 2 end @primes[index] end end # Internal use. An implementation of eratosthenes' sieve class EratosthenesSieve include Singleton def initialize @primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101] # @max_checked must be an even number @max_checked = @primes.last + 1 end def get_nth_prime(n) compute_primes while @primes.size <= n @primes[n] end private def compute_primes # max_segment_size must be an even number max_segment_size = 1e6.to_i max_cached_prime = @primes.last # do not double count primes if #compute_primes is interrupted # by Timeout.timeout @max_checked = max_cached_prime + 1 if max_cached_prime > @max_checked segment_min = @max_checked segment_max = [segment_min + max_segment_size, max_cached_prime * 2].min root = Integer(Math.sqrt(segment_max).floor) segment = ((segment_min + 1) .. segment_max).step(2).to_a (1..Float::INFINITY).each do |sieving| prime = @primes[sieving] break if prime > root composite_index = (-(segment_min + 1 + prime) / 2) % prime while composite_index < segment.size do segment[composite_index] = nil composite_index += prime end end @primes.concat(segment.compact!) @max_checked = segment_max end end end