[ruby-core:62487] [ruby-trunk - Bug #7395] [Assigned] Negative numbers can't be primes by definition

From: mame@...
Date: 2014-05-10 00:20:52 UTC
List: ruby-core #62487
Issue #7395 has been updated by Yusuke Endoh.

Status changed from Closed to Assigned

Read the rdoc carefully:

> Returns true if +self+ is a prime number, false for a composite.

By definition, a composite number can be also a positive integer greater than 1.

http://mathworld.wolfram.com/CompositeNumber.html

Thus,

  1.prime? #=> false
  0.prime? #=> false
  (-1).prime? #=> false

looks all buggy (or undefined behavior) to me.
If we can change the spec, it would be good to raise an exception, return nil, or at least update the rdoc.
Anyway, the maintainer (Yugui) should treat this, I think.

-- 
Yusuke Endoh <mame@tsg.ne.jp>

----------------------------------------
Bug #7395: Negative numbers can't be primes by definition
https://bugs.ruby-lang.org/issues/7395#change-46651

* Author: Zachary Scott
* Status: Assigned
* Priority: Normal
* Assignee: Yuki Sonoda
* Category: lib
* Target version: current: 2.2.0
* ruby -v: 2.0.0
* Backport: 
----------------------------------------
from github:
https://github.com/ruby/ruby/pull/187

By definition, a prime number can be a positive integer greater than 1.

http://mathworld.wolfram.com/PrimeNumber.html

---Files--------------------------------
prime_refute_negative_numbers.patch (1.16 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread