Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的一些素数被认为不是素数_Java_Primes - Fatal编程技术网

Java 我的一些素数被认为不是素数

Java 我的一些素数被认为不是素数,java,primes,Java,Primes,我不太确定我的代码出了什么问题,似乎大部分事情都在进行中 public static char isPrime(int x) { char result = 'r'; for(int y=2;y<x;y++) { if(x%y==0) result = 't'; else re

我不太确定我的代码出了什么问题,似乎大部分事情都在进行中

public static char isPrime(int x)
        {
            char result = 'r';
            for(int y=2;y<x;y++)
            {
                if(x%y==0)
                result = 't';
                else
                result = 'f';
            }
            return result;
        }
publicstaticcharisprime(intx)
{
字符结果='r';

因为(inty=2;y你的真与假是相反的,如果它可以被它的非素数整除

此外,在循环的每次运行中,您都会覆盖所有的旧数据,只要任何数据是完全可除的,那么它就不是素数,此时返回false


另外,你有没有考虑过使用布尔值true和false?

如果真值和假值正好可以被它的非素数整除,那么你的真值和假值是相反的

此外,在循环的每次运行中,您都会覆盖所有的旧数据,只要任何数据是完全可除的,那么它就不是素数,此时返回false


另外,您是否考虑过使用布尔值true和false?

当您这样切换时,您会丢弃所有以前的结果

假设它是素数,直到找到一个复合数

public static char isPrime(int x)
{
    char result = 't';
    for(int y=2;y<x;y++)
    {
        if(x%y==0)
        {
            result = 'f';
            break;
        }
    }
    return result;
}
publicstaticcharisprime(intx)
{
字符结果='t';

对于(inty=2;y,当您像那样切换时,您会丢弃所有以前的结果

假设它是素数,直到找到一个复合数

public static char isPrime(int x)
{
    char result = 't';
    for(int y=2;y<x;y++)
    {
        if(x%y==0)
        {
            result = 'f';
            break;
        }
    }
    return result;
}
publicstaticcharisprime(intx)
{
字符结果='t';

对于(int y=2;y您总是要到达循环的末尾,因此结果将是
x-1


您需要从
result='t'
开始,并中断
false
值的循环。

您总是要到达循环的末尾,因此结果将是
x-1

public static char isPrime(int x)
    {
        char result = 't';
        for(int y=2;y<x;y++)
        {
            if(x%y==0) {
                result = 'f';
                break;
            }
        }
        return result;
    }
您需要从
result='t'
开始,并中断
false
值的循环。

公共静态字符isPrime(int x)
public static char isPrime(int x)
    {
        char result = 't';
        for(int y=2;y<x;y++)
        {
            if(x%y==0) {
                result = 'f';
                break;
            }
        }
        return result;
    }
{ 字符结果='t'; 对于(int y=2;y
publicstaticcharisprime(int x)
{
字符结果='t';

对于(int y=2;y当你发现你的数字不是素数后,你应该
break
return
,就这么简单。此外,当数字不是素数时,你似乎返回
t

当你发现你的数字不是素数后,你应该
break
return
,就这么简单。添加传统上,当数字不是素数时,您似乎返回
t

尝试以下方法:

public static boolean isPrime(int x) {
    for (int y = 2; y*y <= x; y++) {
        if (x % y == 0)
            return false;
    }
    return true;
}
公共静态布尔值isPrime(int x){
对于(int y=2;y*y请尝试以下方法:

public static boolean isPrime(int x) {
    for (int y = 2; y*y <= x; y++) {
        if (x % y == 0)
            return false;
    }
    return true;
}
公共静态布尔值isPrime(int x){

对于(int y=2;y*y你的方法不是解析素数。如果一个数只能被一除或自身除,那么它就是一个素数

例如,如果我在方法中输入17,当y==16时,结果将被设置为“f”,这将是返回的结果。但是,17是一个素数

相反,你应该尝试类似的方法

for (int i = 2; i < x; i++) {
  if (x % y == 0) return false;
}
return true;
for(int i=2;i
您的方法不是解析素数。如果一个数只能被一除或自身除,那么它就是素数

例如,如果我在方法中输入17,当y==16时,结果将被设置为“f”,这将是返回的结果。但是,17是一个素数

相反,你应该尝试类似的方法

for (int i = 2; i < x; i++) {
  if (x % y == 0) return false;
}
return true;
for(int i=2;i
请使用boolean并提供Junit测试用例,这样我们就知道您的确切期望

public static boolean isPrime(int x)
        {

            for(int y=2;y<x;y++)
            {
                if(x%y==0)
                return false;
            }
            return true;
        }
公共静态布尔值isPrime(int x)
{

对于(inty=2;y,请使用boolean并提供Junit测试用例,这样我们就知道您的确切期望

public static boolean isPrime(int x)
        {

            for(int y=2;y<x;y++)
            {
                if(x%y==0)
                return false;
            }
            return true;
        }
公共静态布尔值isPrime(int x)
{


对于(int y=2;yy你真的应该开始使用布尔值而不是处理字符比较。你能给我们一个例子吗?假设
't'
表示复合,
'f'
表示素数,你只返回
x-1
是否除法,因为结果是在每次循环迭代中写入的。如果这是作业,我建议如果你想了解你的助教,你可能会在这里得到一个解决方案。但是如果你想理解它,也想知道老师想让你学习什么,那么去助教那里会对你帮助最大。@jlordo代码是重复的,但上一个问题只是询问编译器错误。这个问题问的是不同的。幸好他是每个问题只问1个问题。你真的应该开始使用布尔值而不是处理字符比较。你能给我们一个例子吗?假设
't'
表示复合,
'f'
表示素数,你只返回
x-1
是否除法,因为结果是在每个循环迭代中写入的。如果这是家庭作业我建议你和助教谈谈,你可能会在这里得到一个解决方案。但是如果你想理解它,也知道老师想让你学什么,那么去助教那里对你帮助最大。@jlordo代码重复了,但上一个问题只是问编译器错误。这个问题的要求不同。他每个问题只问一个问题是件好事。eeeewwwww布尔值:-PI+1'ed,但后来我注意到
y
的严重失礼。再敲三下键盘就可以纠正这一错误了。:)@WillNess你当然是对的。复制粘贴错误,修复了它。谢谢!eeeewwww布尔值:-PI+1'ed,但后来我注意到了
y
的严重失误。再按三次键就可以纠正这个错误了。:)@你当然是对的。复制粘贴错误,修正了。谢谢!哈哈,我们最终得到了完全相同的代码。哈哈,我们最终得到了完全相同的代码。