gpt4 book ai didi

java - 这段代码有什么问题?质数

转载 作者:行者123 更新时间:2023-11-29 07:14:47 26 4
gpt4 key购买 nike

我知道这不是寻找素数的最佳方法,也不是最有效的方法;但是,我似乎无法找到 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");

最佳答案

替换 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 .

关于java - 这段代码有什么问题?质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com