gpt4 book ai didi

java - 使用For循环获取素数java

转载 作者:行者123 更新时间:2023-12-02 05:17:31 24 4
gpt4 key购买 nike

我必须使用 for 循环获取素数,我拥有一切并且它运行,但它总是返回“是素数”

示例输出:

1201 IS PRIME.
77 IS NOT PRIME.
1213 IS PRIME.
88 IS NOT PRIME.
1217 IS PRIME.
99 IS NOT PRIME.
121 IS NOT PRIME.
1431 IS NOT PRIME.
1223 IS PRIME.
141 IS NOT PRIME.
234 IS NOT PRIME.
97 IS PRIME.
436 IS NOT PRIME.
47 IS PRIME.
7 IS PRIME.
547 IS PRIME.
2456 IS NOT PRIME.
34 IS NOT PRIME.

代码:

import static java.lang.System.*;
import java.lang.Math;

public class Prime
{
private int j;

private int result = 0;

public Prime()
{
j = 0;
}

public Prime(int num)
{
j = num;
}

public void setPrime(int num)
{
j = num;
}

//boolean isPrime() goes here

public boolean isPrime()
{
boolean prime = true;
for(int i = 2; i<= j/2; i++)
{
if(j % i >= 0)
{
prime = false;
}
prime = true;
}
return prime;
}

public String toString()
{
if( isPrime() == false)
{
return "Number: " + j + " is Not Prime.";
}
else
{
return "Number: " + j + " is Prime. ";
}
}

}

我已经设置了运行者并且正在从文件中读取。问题是java没有经过后面的if语句。

最佳答案

你的条件有误。

  if(j % i >= 0)

永远正确。

更改为

  if(j % i == 0)

并从循环中删除 prime = true;,否则您的方法将始终返回 true

实际上,一旦找到除数,您就可以去掉 prime 变量并简单地返回 false :

   public boolean isPrime()
{
for(int i = 2; i<= j/2; i++)
{
if(j % i == 0)
{
return false;
}
}
return true;
}

关于java - 使用For循环获取素数java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26793828/

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