ac-library-rb 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea3d0d1da25b8041649d8557a5a1b13bdeea43b7a6cac7595f91ecc0d9c33765
4
- data.tar.gz: 256f780e4265b983237cb3def90f76013f828e29aadc9688f7c5107eefc5bab9
3
+ metadata.gz: 19c290e3ada0938fb7281031ac3cef77dde32f3f1200ca057ef132c132461c7b
4
+ data.tar.gz: dc224c10271238974e2b336776ba99128543b488e5d7386291d5b30dcb04a1b7
5
5
  SHA512:
6
- metadata.gz: 3aad71356647d2bdc55a917d52fe26905b9aa25847834b1432352d5f43d3493aae1bc4040fa2a6feb28558b9606323fbabac2d20c54a3a9bd87f70c73be52369
7
- data.tar.gz: 3774b64e8318b2e026e1dc059eae23eefc3836cf20b5800a2ca8c3f4fc714414e63511959b46f1d5eed80e0a2561c0182f11464b6d5ce21984caaaade9d8f40e
6
+ metadata.gz: 0c2ad9efa4fe5cb85bc3511a01ca04bc1886e63b123ab175153148cb8a456f60cf4defa896e9649e4f055931ba554ad842dc1545cee0a93b3ea3c1b5570c11df
7
+ data.tar.gz: 305147ce9a7a76ade5cb6b541a13f2fe9b31ac179381f21f96ad56963baa4b35355adf661d9a05826ff1218a6dd91eb6b0841e2a5eee486c1b1bed956ae67d7e
@@ -1,3 +1,3 @@
1
1
  module AcLibraryRb
2
- VERSION = "1.1.0".freeze
2
+ VERSION = "1.2.0".freeze
3
3
  end
@@ -0,0 +1,31 @@
1
+ require "prime"
2
+
3
+ class Integer
4
+ # Returns the positive divisors of +self+ if +self+ is positive.
5
+ #
6
+ # == Example
7
+ # 6.divisors #=> [1, 2, 3, 6]
8
+ # 7.divisors #=> [1, 7]
9
+ # 8.divisors #=> [1, 2, 4, 8]
10
+ def divisors
11
+ if prime?
12
+ [1, self]
13
+ elsif self == 1
14
+ [1]
15
+ else
16
+ xs = prime_division.map{ |p, n| Array.new(n + 1){ |e| p**e } }
17
+ x = xs.pop
18
+ x.product(*xs).map{ |t| t.inject(:*) }.sort
19
+ end
20
+ end
21
+
22
+ # Iterates the given block for each divisor of +self+.
23
+ #
24
+ # == Example
25
+ # ds = []
26
+ # 10.divisors{ |d| ds << d }
27
+ # ds #=> [1, 2, 5, 10]
28
+ def each_divisor(&block)
29
+ block_given? ? divisors.each(&block) : enum_for(:each_divisor)
30
+ end
31
+ end
data/lib/deque.rb CHANGED
@@ -238,9 +238,9 @@ class Deque
238
238
  end
239
239
 
240
240
  def inspect
241
- "Deque#{to_a}(@n=#{@n}, @buf=#{@buf}, @head=#{@head}, @tail=#{@tail}, size #{size}#{if __full?
242
- ' full'
243
- end}#{' rev' if reversed?})"
241
+ "Deque#{to_a}"
242
+ # "Deque#{to_a}(@n=#{@n}, @buf=#{@buf}, @head=#{@head}, @tail=#{@tail}, "\
243
+ # "size #{size}#{' full' if __full?}#{' rev' if reversed?})"
244
244
  end
245
245
 
246
246
  private def __push(x)
@@ -0,0 +1,31 @@
1
+ require "prime"
2
+
3
+ class Integer
4
+ # Returns the positive divisors of +self+ if +self+ is positive.
5
+ #
6
+ # == Example
7
+ # 6.divisors #=> [1, 2, 3, 6]
8
+ # 7.divisors #=> [1, 7]
9
+ # 8.divisors #=> [1, 2, 4, 8]
10
+ def divisors
11
+ if prime?
12
+ [1, self]
13
+ elsif self == 1
14
+ [1]
15
+ else
16
+ xs = prime_division.map{ |p, n| Array.new(n + 1){ |e| p**e } }
17
+ x = xs.pop
18
+ x.product(*xs).map{ |t| t.inject(:*) }.sort
19
+ end
20
+ end
21
+
22
+ # Iterates the given block for each divisor of +self+.
23
+ #
24
+ # == Example
25
+ # ds = []
26
+ # 10.divisors{ |d| ds << d }
27
+ # ds #=> [1, 2, 5, 10]
28
+ def each_divisor(&block)
29
+ block_given? ? divisors.each(&block) : enum_for(:each_divisor)
30
+ end
31
+ end
@@ -239,9 +239,9 @@ module AcLibraryRb
239
239
  end
240
240
 
241
241
  def inspect
242
- "Deque#{to_a}(@n=#{@n}, @buf=#{@buf}, @head=#{@head}, @tail=#{@tail}, size #{size}#{if __full?
243
- ' full'
244
- end}#{' rev' if reversed?})"
242
+ "Deque#{to_a}"
243
+ # "Deque#{to_a}(@n=#{@n}, @buf=#{@buf}, @head=#{@head}, @tail=#{@tail}, "\
244
+ # "size #{size}#{' full' if __full?}#{' rev' if reversed?})"
245
245
  end
246
246
 
247
247
  private def __push(x)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ac-library-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - universato
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-04 00:00:00.000000000 Z
11
+ date: 2023-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prime
@@ -136,6 +136,7 @@ files:
136
136
  - lib/ac-library-rb/version.rb
137
137
  - lib/convolution.rb
138
138
  - lib/core_ext/all.rb
139
+ - lib/core_ext/integer.rb
139
140
  - lib/core_ext/modint.rb
140
141
  - lib/crt.rb
141
142
  - lib/deque.rb
@@ -159,6 +160,7 @@ files:
159
160
  - lib_helpers/ac-library-rb/all.rb
160
161
  - lib_lock/ac-library-rb/convolution.rb
161
162
  - lib_lock/ac-library-rb/core_ext/all.rb
163
+ - lib_lock/ac-library-rb/core_ext/integer.rb
162
164
  - lib_lock/ac-library-rb/core_ext/modint.rb
163
165
  - lib_lock/ac-library-rb/crt.rb
164
166
  - lib_lock/ac-library-rb/deque.rb