public boolean isPrime(int n) { for (int i = 2; i * i <= n; i++ ) { if (n % i == 0){ return false;// Write your solution here } } return true; } 这个是正确写法。我想知道return true为什么要放在循环结构外面?
时间: 2023-06-18 13:02:28 浏览: 38
这是因为循环结构是用来检查一个数是否为质数的,如果在循环内部找到了一个可以整除n的数,那么这个数n就不是质数了,所以可以直接返回false。如果循环内部没有找到可以整除n的数,那么n就是质数,但是此时不能直接返回true,因为循环还没有结束。只有当循环完全结束后,才能确定n是质数,所以此时才能返回true。因此,return true语句需要放在循环结构的外面。
相关问题
public boolean isPrime(int n) { for (int i = 2; i * i <= n; i++ ) { if (n % i == 0){ return false;// Write your solution here } } return true; } 这个是正确写法。我想知道为什么是i*i<=n?
这是因为如果一个数n不是质数,那么它一定可以分解为两个因数a和b,其中a和b不会都大于n的平方根。举个例子,假设n不是质数,那么它可以表示为n=a*b,其中a和b都是大于1的整数。如果a和b都大于n的平方根,那么a*b>n*n,显然不可能等于n,因此至少有一个因子小于或等于n的平方根。因此在判断n是否为质数时,只需要判断2到n的平方根之间的数是否能够整除n即可,这就是为什么循环条件为i*i <= n。
public class Prime { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); System.out.println(isPrime(x)); } public boolean isPrime(int n) { for (int i = 2; i <= Math.sqrt(n); i++ ) { if (n % i == 0){ return false;// Write your solution here } } return true; } }为什么这段代码会报错
这段代码会报错是因为`isPrime`方法是静态方法,而静态方法无法调用非静态方法。解决方法有两种:
1. 将`isPrime`方法也设置为静态方法:
```
public static boolean isPrime(int n) {
for (int i = 2; i <= Math.sqrt(n); i++ ) {
if (n % i == 0){
return false;
}
}
return true;
}
```
2. 创建一个`Prime`类的对象,然后调用`isPrime`方法:
```
public class Prime {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x = in.nextInt();
Prime prime = new Prime();
System.out.println(prime.isPrime(x));
}
public boolean isPrime(int n) {
for (int i = 2; i <= Math.sqrt(n); i++ ) {
if (n % i == 0){
return false;
}
}
return true;
}
}
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)