Android Studio (Java): Continuer le nombre premier pour la boucle sur la presse de bouton


Je veux pouvoir afficher le nombre premier suivant chaque fois que le bouton est cliqué mais je ne trouve pas de moyen pour que cela fonctionne. - On aider s'il vous plaît?

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button primeButton = (Button) findViewById(R.id.primeButton);
        primeButton.setOnClickListener(
            new Button.OnClickListener(){
                public void onClick(View v){
                    TextView primeText = (TextView) findViewById(R.id.primeText);
                    int max =  500;
                    for(int i=2; i<=max; i++) {
                        boolean isPrimeNumber = true;
                        for (int j = 2; j <= i; j++) {
                            if (i % j == 0 ) {
                                isPrimeNumber = false;
                                break;
                            }

                        }
                        if (isPrimeNumber){
                            primeText.setText(Integer.toString(i));
                        }
                    }
                }
            }
        );
    }
}
Author: Ninjakannon, 2015-04-06

2 answers

Essayez ceci

public class MainActivity extends Activity {

 Button b;
 int max = 500;
 TextView vTextView;
 int j = 2;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  b = (Button) findViewById(R.id.button1);
  vTextView = (TextView) findViewById(R.id.textView1);

  b.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub

    for (int i = j; i <= max; i++) {
     if (isPrimeNumber(i)) {
      vTextView.setText(i+"");
      j = i+1;
      break;
     }
    }

   }
  });

 }

 public boolean isPrimeNumber(int number) {

  for (int i = 2; i <= number / 2; i++) {
   if (number % i == 0) {
    return false;
   }
  }
  return true;
 }

}
 2
Author: Nivedh, 2015-04-06 14:02:06

Pour trouver un nombre premier, les nombres premiers entre deux nombres et la somme d'un nombre premier

public class MainActivity extends AppCompatActivity {
private EditText etInput;
private EditText et_from, et_to;
private Button btnCheck, btn_print;
private TextView tvResult;
private int inputnumber;
private int fromNumber, toNumber;
private boolean isPrimeNumber = true;
private TextView tv_prime_sum;
private int primeNumbersSum;
private TextView tv_check;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViews();
    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!(etInput.getText().toString().trim() != null && etInput.getText().toString().trim().length() > 0)) {
                etInput.setError("Please enter the number");

            } else {
                inputnumber = Integer.parseInt(etInput.getText().toString());
                for (int i = 2; i <= inputnumber / 2; i++) {
                    if (inputnumber % i == 0) {
                        isPrimeNumber = false;
                        break;
                    }
                }
                if (isPrimeNumber) {
                    tv_check.setText("The given number " + inputnumber + " is a prime number");
                } else {
                    tv_check.setText("The given number " + inputnumber + " is not a prime number");
                }
                isPrimeNumber = true;
            }
        }
    });

    btn_print.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!(et_from.getText().toString().trim() != null && et_from.getText().toString().trim().length() > 0)) {
                et_from.setError("Please enter the number");

            } else if (!(et_to.getText().toString().trim() != null && et_to.getText().toString().trim().length() > 0)) {
                et_to.setError("Please enter the number");
            } else {

                fromNumber = Integer.parseInt(et_from.getText().toString());
                toNumber = Integer.parseInt(et_to.getText().toString());
                if (fromNumber > toNumber) {
                    fromNumber = fromNumber - toNumber;
                    toNumber = fromNumber + toNumber;
                    fromNumber = toNumber - fromNumber;
                }
                StringBuilder stringBuilder = new StringBuilder();

                for (int j = fromNumber; j <= toNumber; j++) {
                    for (int i = 2; i <= j / 2; i++) {
                        if (j % i == 0) {
                            isPrimeNumber = false;
                            break;
                        } else {
                            isPrimeNumber = true;
                        }
                    }
                    if (isPrimeNumber) {
                        Log.v("Primenumber", "list" + j);
                        primeNumbersSum = primeNumbersSum + j;
                        stringBuilder.append(j);
                        stringBuilder.append(",");
                    } else {
                    }
                }
                tvResult.setText(stringBuilder.toString());
                tv_prime_sum.setText("Total sum of prime numbers: " + primeNumbersSum);
                isPrimeNumber = true;
                primeNumbersSum = 0;


            }
        }
    });
}

private void findViews() {
    etInput = findViewById(R.id.et_input);
    btnCheck = findViewById(R.id.btn_check);
    tvResult = findViewById(R.id.tv_result);
    tv_prime_sum = findViewById(R.id.tv_prime_sum);
    et_from = findViewById(R.id.et_from);
    et_to = findViewById(R.id.et_to);
    btn_print = findViewById(R.id.btn_print);
    tv_check = findViewById(R.id.tv_check);

}

}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
  <EditText
    android:id="@+id/et_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="enter the number"
    android:inputType="number"
    android:visibility="visible" />

<Button
    android:id="@+id/btn_check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_input"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:text="Check" />
<TextView
    android:id="@+id/tv_check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btn_check"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:text="print the number is prime or not" />

   <EditText
    android:id="@+id/et_from"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tv_check"
    android:hint="from number"
    android:inputType="number" />

<EditText
    android:id="@+id/et_to"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_from"
    android:hint="to number"
    android:inputType="number" />

<Button
    android:id="@+id/btn_print"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_to"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:text="Print" />
  <TextView
    android:id="@+id/tv_result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btn_print"
    android:layout_centerHorizontal="true"
    android:text="prints the list of prime numbers" />

<TextView
    android:id="@+id/tv_prime_sum"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tv_result"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp" />
</RelativeLayout>
 0
Author: viveksuggu, 2018-09-24 11:47:20