On Wed, 8 Dec 2004, McGehee, Robert wrote:
R users, I am having a problem with the modulus operator for large numbers as follows,
a <- 2 n <- 561 ## n is the first Carmichael number, so by Fermat's Little Theorem the below should equal zero.
(a^(n-1) - 1) %% n [1] 2.193172e+152 ## Seems that R and Fermat disagree
## Also, 1000000000000000000 %% 11 [1] -32
This seems like a bug. Should I be avoiding integer math for large numbers?
You can find out the largest representable integer from .Machine$integer.max, and it is probably 2^31-1. Numbers larger than that are converted to double precision. On the other hand, %% should probably return an error or NaN if .Machine$double.eps times the first operand is greater than 1.
-thomas
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
