努力寻找R编程的下一个素数

时间:2019-03-07 20:51:19

标签: java r

我是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)

2 个答案:

答案 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)