function <- function(p){
i <- 2
r <- 0
while(i < p) {
q <- (p/i)
while(q>=1) {
q=(q-1)
}
if (q==0) {
r=1
} else
i=i+1
}
return(r)
}
This function stays in some kind of loop when I enter 4 as a function value.
It immediately returns 0 when I inter 3 though.
I don't seem te get why it does not give me just a result. Can someone tell
me why it stays in a loop?
Kind regards,
Michiel
--
View this message in context: http://r.789695.n4.nabble.com/function-stays-in-loop-tp4651619.html
Sent from the R help mailing list archive at Nabble.com.
function stays in loop
3 messages · Mkkl, Rui Barradas, Jim Lemon
Hello, Because p/i == 4/2 == 2 thenyou subtract 1 unil q == 0 and i = i+1 is never executed. (Use print statements to check it.) Hope this helps, Rui Barradas Em 02-12-2012 11:57, Mkkl escreveu:
function <- function(p){
i <- 2
r <- 0
while(i < p) {
q <- (p/i)
while(q>=1) {
q=(q-1)
}
if (q==0) {
r=1
} else
i=i+1
}
return(r)
}
This function stays in some kind of loop when I enter 4 as a function value.
It immediately returns 0 when I inter 3 though.
I don't seem te get why it does not give me just a result. Can someone tell
me why it stays in a loop?
Kind regards,
Michiel
--
View this message in context: http://r.789695.n4.nabble.com/function-stays-in-loop-tp4651619.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
On 12/02/2012 10:57 PM, Mkkl wrote:
function<- function(p){
i<- 2
r<- 0
while(i< p) {
q<- (p/i)
while(q>=1) {
q=(q-1)
}
if (q==0) {
r=1
} else
i=i+1
}
return(r)
}
This function stays in some kind of loop when I enter 4 as a function value.
It immediately returns 0 when I inter 3 though.
I don't seem te get why it does not give me just a result. Can someone tell
me why it stays in a loop?
Hi Michiel, Elementary really. You have programmed a Rube Goldberg test for whether a number is even or odd. If it returns, the number is odd, if it gets into an infinite loop. Play around with the initial value of i for more fun. Jim