有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java这段代码怎么了?素数

我知道这不是找到素数的最好或最有效的方法;因为我觉得169是个小数字,所以我觉得169算不上什么

public static int checkPrime(int num, int i)
{
    if (i == num)
        return 1;

    else
    {
        if (num % i == 0)
            return 0;
        else
            checkPrime(num, i+1);

    }

    return 1;
}

主要类别:

        System.out.println("Type a number");
        number = reader.nextInt();

        if ((number % 10) % 2 == 0)
            result = 0;

        else
            result = checkPrime(number, 2);

        if (result == 1 || number == 2)
            System.out.println(number + " is a prime number");
        else
            System.out.println(number + " is NOT a prime number");

共 (1) 个答案

  1. # 1 楼答案

    int替换为boolean以获得更好的表达能力,并返回递归调用的值,您的方法如下所示:

    public static boolean checkPrime(int num, int i)
    {
        if (i == num)
            return true;    
        else
        {
            if (num % i == 0)
                return false;
            else
                return checkPrime(num, i+1);
        }
    }
    

    它仍然不适用于num < 2,它将运行到i溢出为止。因此,作为主要的素数检查函数,您可以编写如下内容:

    public static boolean checkPrime(int num)
    {
       if(num<2)
         return false;
       else
         return checkPrime(num, 2);
    }
    

    顺便说一句(number % 10) % 2相当于number % 2