Android Studio 写一个查找素数的
时间: 2023-11-02 20:10:27 浏览: 126
好的,下面是一个简单的 Android Studio 代码,用于查找小于等于给定数的素数:
```java
public class MainActivity extends AppCompatActivity {
private EditText input;
private TextView output;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = findViewById(R.id.input);
output = findViewById(R.id.output);
}
public void findPrime(View view) {
int n = Integer.parseInt(input.getText().toString());
boolean[] isPrime = new boolean[n + 1];
Arrays.fill(isPrime, true);
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
sb.append(i).append(" ");
}
}
output.setText(sb.toString());
}
}
```
在布局文件中,我们添加了一个 EditText 用于输入要查找的素数的上限,以及一个 Button 和一个 TextView 用于显示结果:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:text="100" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Find Prime"
android:onClick="findPrime" />
<TextView
android:id="@+id/output"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
</LinearLayout>
```
在代码中,我们使用一个 boolean 数组 isPrime 来记录每个数是否为素数。我们首先将所有数都标记为素数,然后从 2 开始遍历每个数,如果当前数是素数,那么将其所有的倍数都标记为非素数。最后,遍历所有数,将素数添加到 StringBuilder 中,并将结果展示在 TextView 中。
阅读全文