Java 显示一个范围内的n个素数

Java 显示一个范围内的n个素数,java,android,Java,Android,我想在TextView中显示我之前定义的数字范围内的素数,代码: private void primos() { int i, j; boolean esPrimo; int rInicial = 2;//Rango inicial int rFinal = 200;//Rango final for (i = rInicial; i <= rFinal; i++) { esPrimo

我想在
TextView
中显示我之前定义的数字范围内的素数,代码:

private void primos() {
        int i, j;
        boolean esPrimo;
        int rInicial = 2;//Rango inicial
        int rFinal = 200;//Rango final
        for (i = rInicial; i <= rFinal; i++) {
            esPrimo = true;
            for (j = 2; j < i; j++) {
                if (i % j == 0) {
                    esPrimo = false;
                }
            }
            if (esPrimo) {
               //No idea what to do here
            }
        }
    }
private void primos(){
int i,j;
布尔esPrimo;
int-rInicial=2;//Rango-inicial
int rFinal=200;//Rango final

对于(i=rInicial;i声明一个
字符串
以附加您拥有的所有答案,并将其显示在您的
文本视图中

private String primos() {
    int i, j;
    boolean esPrimo;
    int rInicial = 2;//Rango inicial
    int rFinal = 200;//Rango final
    String primeSeries = "";
    for (i = rInicial; i <= rFinal; i++) {
        esPrimo = true;
        for (j = 2; j < i; j++) {
            if (i % j == 0) {
                esPrimo = false;
            }
        }
        if (esPrimo) {
           primeSeries += i + ", ";
        }
    }
    return primeSeries;
}

理想情况下,为了更好地组织,您需要将代码拆分为更多的方法。我的版本效率非常低,只是为了设置代码。您应该了解一些有关Eratosthenes筛选的内容:

private void primos(){
int i,j;
布尔esPrimo;
int-rInicial=2;//Rango-inicial
int rFinal=200;//Rango final
字符串build=“”;
TextView myView=(TextView)findViewById(R.id.myid);//R.id.myid需要由您设置

对于(i=rInicial;i),它应该是textView.setText(primos());而不是。现在我知道我缺少什么,但现在在我的onCreate中,当我使用nameofmytextview.setText(primos());它只是抛出了一个空指针,我在这里遗漏了什么吗?@Pablo可能是您在设置文本之前遗漏了nameofmytextview的初始化您是否已将函数的返回数据类型更改为StringYes,我添加了一条注释并忘记了它,谢谢您的帮助。
textView.setText(primos());
private void primos() {
    int i, j;
    boolean esPrimo;
    int rInicial = 2;//Rango inicial
    int rFinal = 200;//Rango final
    String build = "";
    TextView myView = (TextView) findViewById(R.id.myid); //R.id.myid needs to be set by you
    for (i = rInicial; i <= rFinal; i++) {
        if (isPrime(i)){
            build += i + " "; //however you want to display them
        }
    }
    myView.setText(build);
}

public boolean isPrime(int n){
    for (int i = 2; i < n; i++){
        if (n % i == 0){
            return false;
        }
    }

    return true;
}