I'm working on problem 5 of Project Euler. I'm trying to convert another user's Python code into R, but the output is different.
The Python script's output is 232792560
, where's the R script's output is 1964187225
Where is the error?
Python code:
def is_prime(number):
for n in range(2, number):
if number % n != 0:
n += 1
else:
return False
return True
def smallest_multiple(num):
exp = 1
result = 1
for i in range(2, num):
if is_prime(i):
while True:
if i**exp > num:
result *= i**(exp-1)
break
exp += 1
exp = 1
return result
print(smallest_multiple(20))
R code:
is_prime <- function(num) {
for (n in seq(2, num)) {
if (num %% n != 0) {
n <- n + 1
} else {
return(FALSE)
}
return(TRUE)
}
}
lcm <- function(num) {
exp <- 1
result <- 1
for (i in seq(2, num)) {
if (is_prime(i)) {
while (TRUE) {
if (i ^ exp > num) {
result <- result * i ^ (exp - 1)
break
}
exp <- exp + 1
}
exp <- 1
}
}
return(result)
}
lcm(20)