使用for循环确定Java中的数字是否为素数 我对java相当熟悉,过去一年我用Python和C++获得了一些编程经验;然而,我发现java更令人困惑。我在这里尝试的是通过for循环来确定一个数字(用户输入)是否为素数。以下是我目前掌握的代码: public static boolean isPrime(int x) { boolean prime = true; if (x % 2 == 0) prime = false; if (x % 2 != 0) { for (int i = 3; i*i <= x; i+=2) { if (x % i == 0) prime = false; } } return prime; } 公共静态布尔值isPrime(int x) { 布尔素数=真; 如果(x%2==0) 素数=假; 如果(x%2!=0) { 对于(inti=3;i*i
,您的解决方案为1返回true,为2返回false使用for循环确定Java中的数字是否为素数 我对java相当熟悉,过去一年我用Python和C++获得了一些编程经验;然而,我发现java更令人困惑。我在这里尝试的是通过for循环来确定一个数字(用户输入)是否为素数。以下是我目前掌握的代码: public static boolean isPrime(int x) { boolean prime = true; if (x % 2 == 0) prime = false; if (x % 2 != 0) { for (int i = 3; i*i <= x; i+=2) { if (x % i == 0) prime = false; } } return prime; } 公共静态布尔值isPrime(int x) { 布尔素数=真; 如果(x%2==0) 素数=假; 如果(x%2!=0) { 对于(inti=3;i*i,java,eclipse,Java,Eclipse,,您的解决方案为1返回true,为2返回false public static boolean isPrime(int x) { if(x<2) return false; if(x==2) return true; // boolean prime = true; you dont need the variavle if (x % 2 == 0) return false; // using return is fast
public static boolean isPrime(int x)
{
if(x<2)
return false;
if(x==2)
return true;
// boolean prime = true; you dont need the variavle
if (x % 2 == 0)
return false;
// using return is faster as you dont need to do more conditions
// also, you dont need the if. You could use else, if you dont want to return
// immediately
for (int i = 3; i*i <= x; i+=2)
{
if (x % i == 0)
return false;
}
return true;
}
公共静态布尔值isPrime(int x)
{
如果(X您得到的任何错误?您的代码将为1返回true,但1不是质数。此外,2%2=0,因此您的代码将为2返回false,尽管它是质数。我们应该找出什么?您如何调用该方法,您期望得到什么,以及您得到什么?为什么您期望得到您期望的结果?我得到的错误是,对于任何一个我想要的数字,都是输入我制作的第二个运行此方法的程序,我不断收到false。我对从这里开始的操作感到非常困惑。我只想能够输入“2”,并使输出为真,或者输入“6”,并使输出为false。欢迎使用Stack Overflow!看起来您需要学习使用调试器。请自行解决一些问题。如果以后仍有问题,请随时提出更具体的问题。Stack Overflow是一个问答网站,而不是一个家庭作业编写服务。请不要向用户提供此类服务我不相信,谢谢。