Hi On Dec 8, 2004, at 04:59 pm, 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
I don't think Fermat's Little Theorem is relevant here. Euler's theorem would be though:
a^phi(561)=1 (mod 561) where phi is the totient function.
For your problem, try this:
f <- function(a,p){
a <- as.integer(a)
p <- as.integer(p)
out <- as.integer(1)
for(i in 1:p){
out <- (out*a)%%p
}
return(out)
}
Then
> f(2,561) [1] 1 > f(3,561) [1] 375 (sic) > f(5,561) [1] 1 >
best
rksh
## Seems that R and Fermat disagree
## Also, 1000000000000000000 %% 11 [1] -32
Thi______________________________________________
[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
-- Robin Hankin Uncertainty Analyst Southampton Oceanography Centre European Way, Southampton SO14 3ZH, UK tel 023-8059-7743
______________________________________________ [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
