while求素数java
时间: 2023-10-14 08:16:04 浏览: 85
答案如下:
```
public static boolean isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static void printPrimes(int n) {
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
}
public static void main(String[] args) {
printPrimes(100);
}
```
这里我们定义了两个方法,`isPrime` 用来判断一个数是否是素数,`printPrimes` 则输出 2 到 n 之间的所有素数。在 `main` 方法中调用 `printPrimes`,输出 2 到 100 之间的所有素数。
相关问题
while输出素数java
在Java中使用while循环来输出素数,首先需要了解素数是指那些只能被1和它本身整除的大于1的自然数。下面是一个简单的例子,展示了如何使用while循环找到并打印小于某个特定数值的所有素数。
```java
public class PrimeNumbers {
public static void main(String[] args) {
int number = 2; // 从最小的素数2开始
int limit = 100; // 设置一个上限,比如打印小于100的所有素数
while(number < limit) {
if(isPrime(number)) {
System.out.println(number);
}
number++;
}
}
public static boolean isPrime(int num) {
if(num <= 1) {
return false; // 0和1不是素数
}
int i = 2;
while(i * i <= num) {
if(num % i == 0) {
return false; // 如果能被除了1和它本身之外的数整除,则不是素数
}
i++;
}
return true; // 是素数
}
}
```
在这个例子中,`main`方法中的while循环用于遍历从2开始到小于`limit`的所有整数。对于每个数,`isPrime`方法用来检查它是否为素数。如果是,就将其打印出来。
`isPrime`方法中使用了另一种while循环,它以2开始,一直到`sqrt(num)`(即`i * i <= num`)。这是因为一个非素数必定有一个因子不大于它的平方根。如果在这个范围内没有找到能整除的数,那么这个数就是素数。
java while求100以内素数
在Java中,可以使用while循环来求解100以内的素数。素数是只能被1和自身整除的正整数。
下面是一个示例代码:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int num = 2; // 从2开始判断
while (num <= 100) {
boolean isPrime = true;
int divisor = 2;
while (divisor <= Math.sqrt(num)) {
if (num % divisor == 0) {
isPrime = false;
break;
}
divisor++;
}
if (isPrime) {
System.out.print(num + " ");
}
num++;
}
}
}
```
这段代码使用了两个while循环嵌套。外层的while循环用于遍历2到100之间的所有数字,内层的while循环用于判断当前数字是否为素数。
在内层循环中,通过判断当前数字是否能被2到其平方根之间的任意数字整除来确定是否为素数。如果能被整除,则将isPrime标记为false,并跳出内层循环。如果不能被整除,则isPrime保持为true,表示当前数字是素数。
最后,如果isPrime为true,则将当前数字输出。
阅读全文