我是R编程的新手,我正努力寻找给定数字x的下一个质数。我已经尝试了Java中的逻辑,并且可以正常工作。所以我真正要做的是将一些Java代码转换为R。这就是我的Java版本。
public static int nextPrime(int n) {
int i,j;
for( i= n+1;;i++) {
for(j=2;j<i;j++) {
if(i % j == 0)
break;
}
if(j == i) {
// System.out.println(i);
break;
}
}
return i;
}
这是我的R版本
nextPrime <- function(x) {
i = x+1
repeat {
for(j in 2 : (i-1)) {
if((i %% j) == 0 ) {
break
}
# j = j+1
# print(j)
}
if( i == j){
break
}
i = i+1
}
print(i)
}
nextPrime(11)
答案 0 :(得分:0)
下面的代码,两者都不相同。
替换
for(j in 2 : (i-1))
使用
for(j in 2 : i)
答案 1 :(得分:0)
我不了解Java,但是这里有一个功能-while循环-可为您提供所需的内容。
f <- function(x){
# @IsmailMüller
temp <- x+1
test <- 2:x
# while temp is divisible by at least one precedent value (not prime)
while( any( (temp %% test) == 0 ) ){
# increase the value of temp by 1
temp <- temp+1
}
temp
}
f(11)