gpt4 book ai didi

Java逻辑错误: isPrime

转载 作者:行者123 更新时间:2023-12-01 11:37:43 24 4
gpt4 key购买 nike

请问我的代码中可能存在什么错误,为什么它打印数字而不是仅打印小于 10,000 的质数?

public class Isprime {
public static void main(String[] args) {
System.out.println("The prime numbers less that 10000 are:");
int number = 2;
printprime(number);

}

public static void printprime(int number) {
int pperline = 10;
int count = 0;
while (number < 10000) {
if (isprime(number)) {
count++;
}
if (count % pperline == 0) {
System.out.println();
} else {
System.out.print(number + ",");
}
number++;
}
}

public static boolean isprime(int number) {
for (int divisor = 2; divisor <= number / 2; divisor++) {
if (number % divisor == 0)
return false;
}
return true;
}
}

最佳答案

您正在计算一个数字是否是素数,但您没有在检查该数字的条件内进行打印。这意味着您的素数计数是正确的,但是您为每个数字打印一些内容,而不仅仅是素数。

您需要将 print 语句移至 if (isprime(number)) 检查内。另外,您只打印一个质数换行符。您应该从格式逻辑中删除 else,这样就不会跳过每 10 个素数的打印:

public static void printprime(int number) {
int pperline = 10;
int count = 0;
while (number < 10000) {
if (isprime(number)) {
count++;
if (count % pperline == 0) {
System.out.println();
}
System.out.print(number + ",");
}
number++;
}
}

关于Java逻辑错误: isPrime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809348/

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