使用for循环确定Java中的数字是否为素数

时间:2017-09-10 16:18:15

标签: java eclipse

我对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;
}

我已经坚持了很长一段时间,如果有人能帮我解决这个问题,那就太棒了。

1 个答案:

答案 0 :(得分:0)

您的解决方案对于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 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;
}